GridView 中 Checkbox取值问题,急,急,急
- C# code
<asp:GridView ID="GvNewsInfo" runat="server" AutoGenerateColumns="False" DataKeyNames="JobID" EmptyDataText="当前没有任何招聘信息!" Width="100%" AllowPaging="True" EnableModelValidation="True"> <Columns> <asp:TemplateField HeaderText="选择"> <ItemTemplate> <asp:CheckBox ID="ChkItem" runat="server" /> </ItemTemplate> <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" Width="100px" /> </asp:TemplateField> <asp:BoundField DataField="JobID" HeaderText="招聘ID" InsertVisible="False" ReadOnly="True" SortExpression="JobID" /> </Columns> <HeaderStyle BackColor="#E9F3D6" ForeColor="#5C9948"></HeaderStyle> <PagerStyle BackColor="#E9F3D6"></PagerStyle> </asp:GridView>
现在有这么一个GridView,现在我要将第一列复选框选中的值存到DataTable中。请问各位大侠,这个该如何实现啊?
有帮助的解答者分数不会少。急。急。急啊、、
[解决办法]
foreach (GridViewRow gvr in GridView1.Rows)
{
System.Data.DataTable dt = new System.Data.DataTable();
System.Data.DataRow dr;
dt.Columns.Add(new System.Data.DataColumn("id", typeof(System.String)));
CheckBox ch = (CheckBox)gvr.FindControl("ChkItem");
if (ch.Checked)
{
dr = dt.NewRow();
dr[0] = GridView1.DataKeys[gvr.DataItemIndex].Value.ToString();
dt.Rows.Add(dr);
}
}
[解决办法]
[解决办法]
public class SmsManagerActivity extends TabActivity {
/** Called when the activity is first created. */
private TabHost tabHost;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tabHost = getTabHost();//得到TabHost
// setUpConversation();
setUpDuixiang();
setUpDiaoqian();
}
[解决办法]
[解决办法]
System.Data.DataTable dt = new System.Data.DataTable();
System.Data.DataRow dr;
foreach (GridViewRow gvr in GridView1.Rows)
{
dt.Columns.Add(new System.Data.DataColumn("id", typeof(System.String)));
CheckBox ch = (CheckBox)gvr.FindControl("ChkItem");
if (ch.Checked)
{
dr = dt.NewRow();
dr[0] = gvr.cells[1].text;
dt.Rows.Add(dr);
}
}
[解决办法]
dt.Columns.Add(new System.Data.DataColumn("id", typeof(System.String)));
这句也放到foreach外面来
[解决办法]
给个小例子。。
- C# code
foreach (GridViewRow row in GridView1.Rows) { bool postback = ((CheckBox)row.FindControl("CheckBox1")).AutoPostBack; if (!postback) { ((CheckBox)row.FindControl("CheckBox1")).AutoPostBack = true; } }
[解决办法]
前台:
<input name="CheckBox" id="CheckBox" runat="server" type="checkbox" value='<%#Eval("UserID") %>' />
后台
public string Getid()
{
string streid = "";
for (int i = 0; i < this.GvNewsInfo.Rows.Count; i++) //根据Repeater 控件的情况执行循环判断目标复选框是否被选中
{
HtmlInputCheckBox CB = (HtmlInputCheckBox)this.Repeater1.Items[i].FindControl("CheckBox"); //获取一个目标复选框情况
if (CB.Checked == true) //判断该复选框是否被选中
{
streid = streid + CB.Value + ","; //程序处理代码
}
}
if (streid.Length > 0)
{
streid = streid.Remove(streid.Length - 1);
}
return streid;
}
得到你选中的ID 以,分开的 数组