问题:UpdateState列为1的时候 对应的前面的CheckBox应该选上,选上后,这一列变色。 
应该用js做是么?求做法。
赋值
datatable dt = null;
 if (dt != null)
        {
            GridView1.DataSource = dt;
            GridView1.DataBind();
        } 
赋值以后想实现以上功能

解决方案 »

  1.   

    UpdateState列没显示出来!~~~图片太长了。为0的时候CheckBox不选,为1自动选中。实现变色
      

  2.   

    给每一行的设id,id不同... doucument.getElementById("id").style.... 
      

  3.   

    两种做法:
    1、在客户端循环DataGrid在客户端呈现的HTML对象,里面应该有个input的type为checkbox的element。根据值遍历并且设置即可。
    2、服务器端处理好传过来,在服务器端绑定数据的时候(DataBinding事件),判断被绑定的数据,根据你的要求设置这些控件的Style即可。
      

  4.   

    绑定时遍历筛选 和 通过js 在dom 中筛选
      

  5.   


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <asp:GridView ID="gv" runat="server" AutoGenerateColumns="false" onrowdatabound="gv_RowDataBound">
            <Columns>
                <asp:TemplateField >
                    <ItemTemplate>
                        <asp:CheckBox ID="ckb" runat="server" />
                        <asp:HiddenField ID="hid" runat="server" Value='<%#Eval("ID") %>' />
                    </ItemTemplate>
                    </asp:TemplateField>                
                    <asp:TemplateField >
                    <ItemTemplate>
                        <asp:TextBox ID="txtID" runat="server" Text='<%#Eval("ID") %>' ></asp:TextBox>
                    </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField >
                    <ItemTemplate>
                        <asp:TextBox ID="txtName" runat="server" Text='<%#Eval("Name") %>' ></asp:TextBox>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
        </form>
    </body>
    </html>private DataTable GetDT()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("ID", typeof(Int32)));
            dt.Columns.Add(new DataColumn("Name", typeof(String)));
            DataRow dr = dt.NewRow();
            dr[0] = 1;
            dr[1] = "A";
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr[0] = 2;
            dr[1] = "B";
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr[0] = 3;
            dr[1] = "C";
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr[0] = 1;
            dr[1] = "D";
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr[0] = 2;
            dr[1] = "E";
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr[0] = 1;
            dr[1] = "F";
            dt.Rows.Add(dr);
            return dt;
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                gv.DataSource = GetDT();
                gv.DataBind();
            }
        }
        protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                HiddenField hid = e.Row.FindControl("hid") as HiddenField;
                if (hid != null && hid.Value == "1")
                {
                    CheckBox ckb = e.Row.FindControl("ckb") as CheckBox;
                    if (ckb != null)
                    {
                        ckb.Checked = true;
                    }
                    e.Row.Style.Add("background-color", "red");
                }
            }
        }
      

  6.   


    if (dt != null)
            {
                GridView1.DataSource = dt;
                GridView1.DataBind();
                for (int i = 0; i < GridView1.Rows.Count; i++)
                {
                    //chkSelect绑定UpdateState列的值、
                    CheckBox cb = GridView1.Rows[i].FindControl("chkSelect") as CheckBox;//复选框
                    if (i % 2 == 1)
                    {
                        if (dt.Rows[i][7].ToString() == "1")
                        {
                            cb.Checked = true;
                            GridView1.Rows[i].CssClass = "RowStyle_wan";
                        }
                        else
                        {
                            GridView1.Rows[i].CssClass = "AltRowStyle";
                        }
                    }
                    else
                    {
                        if (dt.Rows[i][7].ToString() == "1")
                        {
                            cb.Checked = true;
                            GridView1.Rows[i].CssClass = "RowStyle_wan";
                            //GridView1.Rows[i].BackColor = System.Drawing.ColorTranslator.FromHtml("#F78181");
                        }
                        else
                        {
                            GridView1.Rows[i].CssClass = "RowStyle";
                        }
                    } 
                   
                }     
    没有适合我的方法,这个方法实现了我的功能。
    结贴给分了!