我有一个网格视图,我想通过检查支票簿来更新将要选择的所有行。首先,我想将所有选定的行放入列表中。我不知道怎么做。我知道如何从列表中填充网格。 我的网格视图是
<asp:GridView runat="server" ID="GridForResult"
Visible="true"
ShowHeader="false"
AutoGenerateColumns="false">
<Columns>
<asp:TemplateField ItemStyle-Width="120px" ItemStyle-Height="22px">
<ItemTemplate>
<%#Eval( "TestRoll")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="150px" ItemStyle-Height="22px">
<ItemTemplate>
<%#Eval( "Name")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="80px" ItemStyle-Height="22px">
<ItemTemplate>
<%#Eval( "Program")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="80px" ItemStyle-Height="22px">
<ItemTemplate>
<asp:CheckBox ID="chkSelected" runat="server" Text="Selected" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
我的另一个问题是如何只从gridview获取所选(复选框)行?
答案 0 :(得分:1)
如果您没有分页并希望在PostBack上保持选中的值,那么它非常简单。
在GridView标记上,设置DataKeyNames="{your primary key}"
代码 - 背后
List<string> primaryKeys = new List<string>();
foreach(GridViewRow row in GridForResult.Rows)
{
CheckBox check = row.FindControl("chkSelected") as CheckBox;
if(check.Checked)
{
primaryKeys.Add(GridForResult.DataKeys[row.RowIndex].Value.ToString());
}
}
List<string>
primaryKeys 现在将包含所有已检查的主键。
答案 1 :(得分:1)
List<string> objList = new List<string>();
foreach (GridViewRow gvrow in GridView1.Rows)
{
CheckBox CheckBox1 = (CheckBox)gvrow.FindControl("CheckBox1");
if (CheckBox1.Checked)
{
objList.Add(row["id"].Text);
}
}
答案 2 :(得分:0)
我会将复选框列设为TemplateColumn。然后在回发时,您需要迭代GridView Rows Collection并执行以下操作:
foreach(GridViewRow row in gridViewId)
{
CheckBox chk = row.FindControl("CheckBoxId") as CheckBox;//use chk value as needed
}
答案 3 :(得分:0)
declare a collection of say string type,
List<string> objList = new List<string>();
foreach(GridViewRow row in gridViewId)
{
CheckBox chk = row.FindControl("CheckBoxId") as CheckBox;
if(chk.IsChecked)
{
objList.Add(row["id"].Text);
}
}
save this list in session,
Session["checkedList"] = objList;
when you want to retireve,use,
objList = List<string>(Session["checkedList"]);