gridview控件问题

来源:百度知道 编辑:UC知道 时间:2024/05/21 17:58:01
我用gridview的时候,使用datatable绑定了,其中有一列使用的是bool类型,但是为什么页面上显示的checkbox不能被改变了?我把readonly属性设成false也不管用,希望高手指教,谢谢~~!另外怎样通过点击checkbox得到我点击的gridview的index是哪一个呢?
下面是我的代码:
C# code
DataTable dt = new DataTable();
DataColumn dc1 = new DataColumn("choose", typeof(bool));
DataColumn dc2 = new DataColumn("name", typeof(string));
DataColumn dc3 = new DataColumn("price", typeof(string));
dc1.ReadOnly = false;

dt.Columns.Add(dc1);
dt.Columns.Add(dc2);
dt.Columns.Add(dc3);

DataRow dr = dt.NewRow();
dr["choose"] = true;
dr["name"] = "baicai";
dr["price"] = "0.8";

DataRow dr2 = dt.NewRow();
dr2["choose"] = false;
dr2["name"] = "jiucai";
dr2["price"] = "0.5";

首先看你的这个checkbox数据是怎么绑定的。比如

<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Eval("Choose") %>' />

如果不行,你重新放一个控件。。

然后这个选中问题。一般用一个循环来解决

int index ;//定义一个index

        for (int i = 0; i < GridView1.Rows.Count; i++)

        {

            if (((CheckBox)this.GridView1.Rows[i].FindControl("CheckBox1")).Checked == true)

            {

                index = this.GridView1.Rows[i].DataItemIndex;

              &nb