Я хочу вставить определенные значения строки при установке флажка. Дизайн и источник приведены ниже. Из дизайна мне нужно выбрать несколько предметов. Если я нажму «Утвердить», мне придется сохранить эти отмеченные флажком значения строк в БД. Помогите мне найти правильное решение.
Дизайн:
ASPX:
C #:
Приведенный ниже код получает все значение gridview и сохраняет его в db. Как я могу изменить этот код в соответствии с вышеуказанными требованиями.
protected void btnApprove_Click(object sender, EventArgs e)
{
ShadingAnalysisDataSetTableAdapters.tbl_ItemRequest_StatusTableAdapter rs;
rs = new ShadingAnalysisDataSetTableAdapters.tbl_ItemRequest_StatusTableAdapter();
foreach (GridViewRow row in GridView2.Rows)
{
string ItemName = row.Cells[0].Text;
string Quantity = row.Cells[1].Text;
rs.testInsert(ItemName, Quantity);
}
}
3 ответа
Вам нужно пройти через сетку и найти флажок по идентификатору в ячейке текущей строки.
foreach (GridViewRow row in GridView2.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
CheckBox chkRow = (row.Cells[2].FindControl("CheckBox1") as CheckBox);
bool chk = chkRow.Checked;
// Do your stuff
}
}
Источник: http: //www.aspsnippets .com / Articles / GridView-with-CheckBox-Get-Selected-Rows-in-ASPNet.aspx
Приведенный ниже код работает отлично.
foreach (GridViewRow row in GridView2.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
CheckBox chkRow = (row.Cells[2].FindControl("CheckBox1") as CheckBox);
if (chkRow.Checked)
{
string ItemName = row.Cells[0].Text;
string Quantity = row.Cells[1].Text;
rs.testInsert(ItemName, Quantity);
}
}
}
Вот мой GridView
<asp:GridView
ID="grdAccounts"
class="table table-condensed"
runat="server"
AutoGenerateColumns="False"
CellPadding="4"
ForeColor="#333333"
GridLines="None">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:BoundField DataField="CUST_NAME" HeaderText="Name" />
<asp:BoundField DataField="CUST_NUMBER" HeaderText="Account Number" />
<asp:BoundField DataField="BR_CODE" HeaderText="CIF Number" />
<asp:TemplateField HeaderText="Select" >
<EditItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" ItemStyle-HorizontalAlign="Right" />
</EditItemTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" onclick="SingleCheckboxCheck(this)" OnCheckedChanged="CheckBox1_CheckedChanged" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<EditRowStyle BackColor="#7C6F57" />
<FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<PagerStyle CssClass="pagination-ys" />
<RowStyle BackColor="#E3EAEB" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#F8FAFA" />
<SortedAscendingHeaderStyle BackColor="#246B61" />
<SortedDescendingCellStyle BackColor="#D4DFE1" />
<SortedDescendingHeaderStyle BackColor="#15524A" />
</asp:GridView>
С# (я предположил, что требуемое значение находится в 1 ячейке выбранной строки.)
string accnbr = string.Empty;
foreach (GridViewRow gvrow in grdAccounts.Rows)
{
CheckBox chk = (CheckBox)gvrow.FindControl("CheckBox1");
if (chk != null & chk.Checked)
{
cif += gvrow.Cells[1].Text + ',';
}
}
Похожие вопросы
Связанные вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.