[英]How to get checkbox value from a gridview with a child gridview
有人可以告訴我單擊按鈕時如何獲取選中的行的列表(嵌套網格的復選框值(ID =“ nestedGridView”)和每個選定行的docnumber值)嗎?
<asp:GridView ID="gvMaster" runat="server" AllowPaging="True"
AutoGenerateColumns="False" DataKeyNames="Accountkey"
DataSourceID="SqlDataSource1" OnRowDataBound="gvMaster_RowDataBound">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<a href="javascript:cx('customerID-<%# Eval("Accountkey") %>');">
<img id="imagecustomerID-<%# Eval("Accountkey") %>"
alt="Click to show/hide orders" border="0" src="Border.png" />
</a>
<asp:CheckBox ID="chkselect" Checked="false" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Accountkey" />
<asp:BoundField DataField="fullname" />
<asp:TemplateField>
<ItemTemplate>
<tr><td colspan="100%">
<div id="customerID-<%# Eval("Accountkey") %>" style="...">
<asp:GridView ID="nestedGridView" runat="server"
AutoGenerateColumns="False" DataKeyNames="Id">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="chkselect" Checked="false"
runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Id" HeaderText="Id"/>
<asp:BoundField DataField="Valuedate" HeaderText="Valuedate"/>
<asp:BoundField DataField="Docnumber" HeaderText="Docnumber"/>
</Columns>
</asp:GridView>
</div>
</td></tr>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
首先獲取對子GridView的引用,然后使用FindControl在其中獲取CheckBox:
foreach (GridViewRow row in gvMaster.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
GridView gvChild = (GridView) row.FindControl("nestedGridView");
// Then do the same method for check box column
if (gvChild != null)
{
foreach (GridViewRow row in gvChild .Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
CheckBox chk = (CheckBox) row.FindControl("chkselect");
if (chk.Checked)
{
// do your work
}
}
}
}
}
}
您可以通過DataRow GridView並將其轉換為CheckBox來獲取它:
foreach (GridViewRow row in gvMaster.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
CheckBox chk = row.FindControl("chkselect") as CheckBox;
if (chk.Checked)
{
// do your work
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.