如何将DB中的数值与gridview中的Checkbox绑定 [英] How to bind the numeric value in DB with Checkbox in gridview

查看:59
本文介绍了如何将DB中的数值与gridview中的Checkbox绑定的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

..



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 as BIT 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆