如何将DB中的数值与gridview中的Checkbox绑定 [英] How to bind the numeric value in DB with Checkbox in gridview
问题描述
..
i有一页,我有一个如下网格视图
Hi,..
i have a page in that i have one gridview like below
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField HeaderText="Master">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%#Eval("Master") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Can Add">
<EditItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</EditItemTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Can Update">
<EditItemTemplate>
<asp:CheckBox ID="CheckBox2" runat="server" />
</EditItemTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox2" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="User Level">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" ></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<EmptyDataTemplate>
Master
</EmptyDataTemplate>
</asp:GridView>
使用以下C#代码使用此网格存储数据在DB中
by using this gridvew me stored data in DB using the following C# Code
protected void Button2_Click(object sender, EventArgs e)
{
con.Open();
kk = GridView1.Rows.Count;
string HH = "select count(*) from Tbl_Com_UserRights where userlevel='" + DDUserLvl.Text + "'";
cmd = new SqlCommand(HH, con);
reccont = (Int32)cmd.ExecuteScalar();
if (reccont == 0)
{
for (int i = 0; i < kk; i++)
{
mas = ((Label)(GridView1.Rows[i].Cells[0].FindControl("Label1"))).Text;
if (((CheckBox)(GridView1.Rows[i].Cells[0].FindControl("CheckBox1"))).Checked == true)
{
aa = 1;
}
else
{
aa = 0;
}
if (((CheckBox)(GridView1.Rows[i].Cells[0].FindControl("CheckBox2"))).Checked == true)
{
bb = 1;
}
else
{
bb = 0;
}
level = Convert.ToDouble( DDUserLvl.Text);
if (mas == "" && aa == 0 && bb == 0)
{
return;
}
else
{
cmd = new SqlCommand("insert into Tbl_Com_UserRights(master,canadd,canupdate,userlevel) values('" + mas + "','" + aa + "','" + bb + "','" + level + "')", con);
Int32 CC = (Int32)cmd.ExecuteNonQuery();
}
}
}
con.Close();
}
现在这些值正确存储在DB中
类似
Master_Name,0(或)1,0(或)1,User_Level(1,2 ..)< br $>
现在我的问题是如何在同一Gridview中检索这些包含数据的数据库
或其他gridview .. 。
如果是第二个&第3列值为0或1,...
如果值为1则gridview中的复选框应该检查
否则值为0复选框不应该被选中... < br $> b $ b
这怎么可能?
如何在Gridview中将该数值与Chechbox组合(或绑定)
请提供C#代码检索以及模板字段来源...
谢谢提前....
now these values stored in DB correctly
as like
Master_Name ,0 (or) 1, 0 (or)1 ,User_Level(1,2..)
now my question is how to retrieve these DB containing Data in Same Gridview
or another gridview...
in that if 2nd & 3rd column value is 0 or 1,...
if the value is 1 Checkbox in gridview Shouldbe Checked
else the value is 0 Checkbox Shouldnot be Checked...
How is This Possible?
How To combine (or Bind)that numeric value with Chechbox in Gridview
Please Provide Me the C# Code To Retrieve and also the Template field Source...
Thanks in Advance....
推荐答案
确保数据0和1来自数据库的BIT
。你需要像这样在前端绑定它:
Make sure that the value 0 and 1 is coming asBIT
from database. You need to bind it in front-end like this:
<itemtemplate>
<asp:checkbox id="CheckBox1" runat="server" checked='<%#Eval("ChkColumn1")%>' />
</itemtemplate>
如果你的数据(0和1)不是 BIT
然后在sqlserver本身中进行CASTE。使用:
And if your data(0 and 1) is not coming as BIT
then CASTE it in sqlserver itself. Use this:
SELECT CAST(ChkColumn1 AS BIT) FROM table1
--Amit
--Amit
see below code you will get some idea
<asp:templatefield headertext="Can Update" xmlns:asp="#unknown">
<edititemtemplate>
<asp:checkbox id="CheckBox2" runat="server" checked='<%#Convert.ToBoolean(Eval("yourcolumnname"))' />
</edititemtemplate>
<itemtemplate>
<asp:checkbox id="CheckBox2" runat="server" checked='<%#Convert.ToBoolean(Eval("yourcolumnname"))' /> </itemtemplate>
</asp:templatefield>
嗨朋友们......非常感谢你们......
在我的aspx页面中我添加了另一个gridview,如下所示
Hi Friends... Thank u So Much to all...
in my aspx page me add another one gridview like below
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
Width="100%">
<Columns>
<asp:TemplateField HeaderText="Master">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%#Eval("Master") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Can Add">
<EditItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</EditItemTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Can Update">
<EditItemTemplate>
<asp:CheckBox ID="CheckBox2" runat="server" />
</EditItemTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox2" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="User Level">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" Width="100%">
<Columns>
<asp:TemplateField HeaderText="Master">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%#Eval("Master") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Can Add">
<EditItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</EditItemTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Eval("CanAdd").ToString() == "1" ? true : false %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Can Update">
<EditItemTemplate>
<asp:CheckBox ID="CheckBox2" runat="server" />
</EditItemTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox2" runat="server" Checked='<%# Eval("CanUpdate").ToString() == "1" ? true : false %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="User Level">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%#Eval("UserLevel") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
in my aspx.cs page i wrote the below code
in my aspx.cs page i wrote the below code
protected void Button2_Click(object sender, EventArgs e)
{
con.Open();
kk = GridView1.Rows.Count;
string HH = "select count(*) from Tbl_Com_UserRights where userlevel='" + DDUserLvl.Text + "'";
cmd = new SqlCommand(HH, con);
reccont = (Int32)cmd.ExecuteScalar();
if (reccont == 0)
{
for (int i = 0; i < kk; i++)
{
mas = ((Label)(GridView1.Rows[i].Cells[0].FindControl("Label1"))).Text;
if (((CheckBox)(GridView1.Rows[i].Cells[0].FindControl("CheckBox1"))).Checked == true)
{
aa = 1;
}
else
{
aa = 0;
}
if (((CheckBox)(GridView1.Rows[i].Cells[0].FindControl("CheckBox2"))).Checked == true)
{
bb = 1;
}
else
{
bb = 0;
}
if (bb == 1)
{
aa = 1;
}
level = Convert.ToDouble(DDUserLvl.Text);
if (mas == "" && aa == 0 && bb == 0)
{
return;
}
else
{
cmd = new SqlCommand("insert into Tbl_Com_UserRights(master,canadd,canupdate,userlevel) values('" + mas + "','" + aa + "','" + bb + "','" + level + "')", con);
Int32 CC = (Int32)cmd.ExecuteNonQuery();
}
}
}
else
{
Int32 KK = GridView2.Rows.Count;
for (int i = 0; i < KK; i++)
{
mas = ((Label)(GridView2.Rows[i].Cells[0].FindControl("Label1"))).Text;
if (((CheckBox)(GridView2.Rows[i].Cells[0].FindControl("CheckBox1"))).Checked == true)
{
aa = 1;
}
else
{
aa = 0;
}
if (((CheckBox)(GridView2.Rows[i].Cells[0].FindControl("CheckBox2"))).Checked == true)
{
bb = 1;
}
else
{
bb = 0;
}
level = Convert.ToDouble(DDUserLvl.Text);
if (mas == "" && aa == 0 && bb == 0)
{
return;
}
else
{
cmd = new SqlCommand("Update Tbl_Com_UserRights Set canadd='" + aa + "',canupdate='" + bb + "' WHERE master='" + mas + "' and userlevel='" + level + "'", con);
Int32 CC = (Int32)cmd.ExecuteNonQuery();
}
}
}
DDUserLvl.Text = "Select Level";
if (kk != 0)
{
ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('Configration Saved');", true);
}
else
{
ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('Configration Updated');", true);
}
Btn_Save.Text = "Save";
GridView2.DataSource = null;
GridView2.DataBind();
GridView1.DataSource = null;
GridView1.DataBind();
con.Close();
}
这篇关于如何将DB中的数值与gridview中的Checkbox绑定的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!