我有这个GridTemplate控件:
<telerik:GridTemplateColumn UniqueName="ContactTemplateColumn" HeaderText="Contact Type">
<ItemTemplate>
<asp:Label ID="lblContact" runat="server"
Text='<%# DataBinder.Eval(Container.DataItem, "Contact") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="ddlContacts" runat="server" DataTextField="ContactType" DataValueField="ContactTypeID"></asp:DropDownList>
</EditItemTemplate>
</telerik:GridTemplateColumn>
我正在尝试在更新记录时保存新值。在我的OnUPDATECommand中,我有这个C#代码:
if (e.Item is GridEditableItem && e.Item.IsInEditMode)
{
GridEditableItem editedItem = e.Item as GridEditableItem;
string contactID = editedItem.OwnerTableView.DataKeyValues[editedItem.ItemIndex]["ContactID"].ToString();
int intContactID = Convert.ToInt16(contactID);
using (BackgroundInvEntities db = new BackgroundInvEntities())
{
var results = db.T_Contacts.Where(a => a.ContactID == intContactID).ToList();
DropDownList ddlContact = (DropDownList)editedItem.FindControl("ddlContacts") as DropDownList;
int intContactType = Convert.ToInt32(ddlContact.SelectedValue);
Label lblContacts = (Label)editedItem.FindControl("lblContact") as Label;
string strContact = lblContacts.Text;
results[0].ContactTypeID = intContactType;
results[0].Contact = strContact;
DbContext.SaveChanges();
gvOrgContacts.MasterTableView.ClearEditItems();
gvOrgContacts.Rebind();
}
}
我可以检索DropDownList的选定值,但是当设置strContact值的代码行运行时,我得到一个未处理的异常。 &#34; JavaScript运行时错误:ObjectReference未设置为对象的实例。
当我检查lblContacts时,它没有显示Web控件,它显示为null。
有关为何找不到此网页控件的任何想法?