GridView显示问题。 问题:UpdateState列为1的时候 对应的前面的CheckBox应该选上,选上后,这一列变色。 应该用js做是么?求做法。赋值datatable dt = null; if (dt != null) { GridView1.DataSource = dt; GridView1.DataBind(); } 赋值以后想实现以上功能 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 UpdateState列没显示出来!~~~图片太长了。为0的时候CheckBox不选,为1自动选中。实现变色 给每一行的设id,id不同... doucument.getElementById("id").style.... 两种做法:1、在客户端循环DataGrid在客户端呈现的HTML对象,里面应该有个input的type为checkbox的element。根据值遍历并且设置即可。2、服务器端处理好传过来,在服务器端绑定数据的时候(DataBinding事件),判断被绑定的数据,根据你的要求设置这些控件的Style即可。 绑定时遍历筛选 和 通过js 在dom 中筛选 <!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"); } } } 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"; } } } 没有适合我的方法,这个方法实现了我的功能。结贴给分了! 急~!!!急~!! my97datepicker的问题 c#怎么把某个繁体字变为简体字 JQuery下Ajax验证中文用户名出现乱码的问题? 100分请教关于__doPostBack("","")失效的问题,有点怪 在页面上指定的坐标位置加上一张图片,问题有难度,希望高手指教,在线等~~~ 关于e.keys[0]的问题。 有关C#生成EXE文件后无法打开的问题 请高手指教,. Cookie如何进行跨站点存取 页面中TreeView的使用(有关控件使用方法……) ASP.NET传值不跳转的方法 急!在三层模式下编辑Datalist没有取出任何数据?
1、在客户端循环DataGrid在客户端呈现的HTML对象,里面应该有个input的type为checkbox的element。根据值遍历并且设置即可。
2、服务器端处理好传过来,在服务器端绑定数据的时候(DataBinding事件),判断被绑定的数据,根据你的要求设置这些控件的Style即可。
<!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");
}
}
}
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";
}
}
}
没有适合我的方法,这个方法实现了我的功能。
结贴给分了!