Я искал несколько похожих вопросов, но нашел только ListView
решения
Но у меня есть GridView
и кнопка за пределами GridView
, и мне нужно обновлять только записи, указанные выбранным флажком.
<asp:GridView ID="gvData"
runat="server" Width = "850px"
CellPadding="5"
AutoGenerateColumns="false"
AllowPaging ="true"
OnPageIndexChanging ="OnPaging" PageSize="5">
<HeaderStyle CssClass="HeaderStyle" />
<PagerStyle CssClass="HeaderStyle" HorizontalAlign="Center" />
<AlternatingRowStyle CssClass="AlternatingRowStyle" />
<RowStyle CssClass="RowStyle" />
<RowStyle HorizontalAlign="Left" />
<Columns>
<asp:TemplateField HeaderText="Id" ItemStyle-Width="20px" Visible="false">
<ItemTemplate>
<asp:Label ID="lblId" runat="server" Text='<%# Eval("id") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Select" ItemStyle-Width="20px">
<ItemTemplate>
<asp:CheckBox ID="chkSelect" runat="server" Checked = "false"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Message" ItemStyle-Width="200px">
<ItemTemplate>
<asp:Label ID="lblMessage" runat="server" Width="500px" Text='<%# Eval("Message") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<br />
<div style="text-align:left;">
<asp:Button ID="btnChange" runat="server" Text="Change Type" OnClick="btnChange_Click" />
</div>
У меня есть метод btnChange_Click()
:
protected void btnChange_Click()
{
int index = gvFailedMerchants.SelectedRow.RowIndex;
DbConnection.UpdateMessageType(index);
}
Когда я нажимаю кнопку, я получаю сообщение
"Objectссылка не установлена на экземпляр объекта "
Я хочу написать логику, в которой я пересекаю сетку и добавляю идентификаторы выбранной строки в одну строку, где все идентификаторы разделены запятыми:
1,2,3,4,5
Затем я отправлю эту строку в хранимую процедуру и буду использовать ее в запросе в течение IN
close:
UPDATE MYTABLE SET column = myValue WHERE ID IN('1,2,3,4,5')
Я не знаю, как правильно подходить кпроблема.
Как я могу это сделать?