Ошибка ссылки на объект - исключение нулевого рефренса из приведенного ниже кода
КОД ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА:
<asp:TemplateColumn> <ItemTemplate> <asp:LinkButton ID="linkSelect" runat="server" CausesValidation="false" CommandName="Select" Text="Select"></asp:LinkButton> </ItemTemplate> </asp:TemplateColumn>
С#:
public void dgListUsers_ItemDataBound(object sender, DataGridItemEventArgs e) { //don't add these changes to headers if (e.Item.ItemIndex != -1) { //add onmouseover, onmouseout and onclick events if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem|| e.Item.ItemType == ListItemType.SelectedItem) { e.Item.Attributes.Add("onmouseover", "this.sColor=this.style.backgroundColor;this.style.backgroundColor='Yellow';this.style.cursor='hand'"); e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor=this.sColor"); //offset e.Item.ItemIndex by 3 to accoutn for headers //e.Item.Attributes.Add("onclick","javascript:__doPostBack('" + "dgListUsers:" + "_ctl" + (e.Item.ItemIndex + 2) + ":_ctl0','')"); LinkButton btn = e.Item.FindControl("linkSelect") as LinkButton; e.Item.Attributes["onclick"] = string.Format("document.getElementById('{0}').click();", btn.ClientID); btn.Style[HtmlTextWriterStyle.Display] = "none"; } } }
Выделенная часть вызывает проблему
Что я уже пробовал:
Испытание:
<%--<asp:ButtonColumn Visible="False" Text="Select" CommandName="Select"></asp:ButtonColumn>--%>
С#:
public void dgListUsers_ItemDataBound(object sender, DataGridItemEventArgs e) { //don't add these changes to headers if (e.Item.ItemIndex != -1) { //add onmouseover, onmouseout and onclick events if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem|| e.Item.ItemType == ListItemType.SelectedItem) { e.Item.Attributes.Add("onmouseover", "this.sColor=this.style.backgroundColor;this.style.backgroundColor='Yellow';this.style.cursor='hand'"); e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor=this.sColor"); //offset e.Item.ItemIndex by 3 to accoutn for headers e.Item.Attributes.Add("onclick","javascript:__doPostBack('" + "dgListUsers:" + "_ctl" + (e.Item.ItemIndex + 2) + ":_ctl0','')"); } } }
Приведенный выше код решает нулевую ссылку, но я не могу щелкнуть по строке в редактировании
F-ES Sitecore
Я попробовал этот код и не получил никаких ошибок, так что есть что-то о данных, которые вы используете, или другой разметке и т. д., Что вызывает проблему.