Код работает при "отладке"(F5) и открытии quickwatch, но не тогда, когда я запускаю его локально или в режиме "без отладки" (ctrl+f5)
Привет!
Я немного новичок в разработке систем, и у меня есть проблема.
Я не могу понять, почему мой код запускается, когда я его отлаживаю (но я тоже должен открыть quickwatch), а не когда я запускаю его локально или в режиме "без отладки". Это похоже на то, что ему нужна какая-то задержка(?). Но мне действительно нужно щелкнуть и открыть быстрые часы, чтобы получить значение идентификатора. В противном случае он равен нулю, и я получаю исключение.
То, что я хочу сделать, это:
Получите идентификатор (ctl103) автоматически созданной строки в таблице.
В браузере это выглядит так:
идентификатор="ctl00_ContentMainPage_gridViewId_ctl03_Панель"
Что я уже пробовал:
Код Aspx:
(Я удалил то, что, как мне кажется, является ненужным кодом.)
<div> <!-- gridview --> <asp:GridView ID="gridViewId" runat="server" AllowSorting="True" AutoGenerateColumns="False" CssClass="cssClass" CellPadding="3"> <Columns> <asp:BoundField DataField="datafield1" HeaderText="datafield1" SortExpression="datafield1" ItemStyle-CssClass="HiddenCol"> <asp:BoundField DataField="datafield2" HeaderText="datafield2"> <asp:BoundField DataField="datafield3" HeaderText="datafield3"> <asp:BoundField DataField="datafield4" HeaderText="datafield4"> <asp:TemplateField> <ItemTemplate> <div> <!-- collapsible panel inside the tabel --> <cc1:CollapsiblePanelExtender ID="CollapsiblePanelExtender1" runat="server"TargetControlID="StretchPanel" ExpandControlID="Panel1" CollapseControlID="Panel1" TextLabelID="Label1" Collapsed="true"> </cc1:CollapsiblePanelExtender> <asp:Label ID="Label1" runat="server"></asp:Label> <asp:Panel ID="Panel1" runat="server"> <asp:LinkButton ID="LinkButton" runat="server" ToolTip="pointer" CausesValidation="false" CommandArgument='<%# Container.DataItemIndex %>' OnCommand="LinkButton_Command">LinkbuttonName</asp:LinkButton> </asp:Panel> <%# AlterRow(Eval("Vägnr")) %> <asp:Panel ID="StretchPanel" runat="server"> <!-- ........more code....... -->
Код C#
protected void LinkButton_Command(object sender, CommandEventArgs e) { int rowIndex = Convert.ToInt32(e.CommandArgument); var id = e.CommandArgument.ToString(); GridViewRow row = (gridViewId.Rows[int.Parse(id)]); var variable1 = row.Cells[0].Text; var variable2 = row.ID.ToString(); //here is where I got error //and need to open quickwatch to get an ID for the row // ......more code....
Сообщение об исключении:
System.NullReferenceException: "ссылка на объект не была установлена на экземпляр объекта".