【问题标题】:Pre-select checkBox from database fields in asp.net using c#使用 c# 从 asp.net 中的数据库字段中预选复选框
【发布时间】:2012-05-28 05:18:39
【问题描述】:

我有一个组支票簿列表,我想从数据库表中预先选择它。我很有趣下面的代码来选择这个,但它不起作用

表中的数据以下列格式存储 示例:-

1,2,
1,5,7,
1,2,3,4,

HTML

<asp:checkboxlist id="chkBoxDaysList" runat="server">
 <asp:listitem  runat="server" value="1"  Text="Sunday" />
 <asp:listitem  runat="server" value="2" Text="Monday" />
 <asp:listitem  runat="server" value="3" Text="Tuesday" />
 <asp:listitem  runat="server" value="4" Text="Wednesday" />
 <asp:listitem  runat="server" value="5" Text="Thrusday" />
 <asp:listitem  runat="server" value="6" Text="Friday" />
 <asp:listitem  runat="server" value="7" Text="Saturday" />
</asp:checkboxlist>

根据之前保存的数据预选复选框的 C# 代码

public void getSelectedDays() { IDataReader博士;

String strSqlDays = "SELECT * FROM EventCalender WHERE rowID = 6";
DataSet ds = new DataSet();
ds = DataProvider.Connect_Select(strSqlDays);
dr = ds.Tables[0].CreateDataReader();

string[] s = new string[50];
while (dr.Read())
{
    s = dr["EventDays"].ToString().Split(',');

}
int length = s.Length;
for (int i = 0; i <= s.Length - 1; i++)
{
    string cntry = s[i];
    for (int j = 0; j <= chkBoxDaysList.Items.Count - 1; j++)
    {
        if (chkBoxDaysList.Items[j].Text == s[i])
        {
            chkBoxDaysList.Items[j].Selected = true;
            break;
        }
    }
}

}

目前代码不会产生任何错误,但也不会选择任何复选框

【问题讨论】:

  • 我正在使用以下示例dotnetaid.com/2012/02/16/…
  • 当你调试你的代码时,是否到了这行'chkBoxDaysList.Items[j].Selected = true;'

标签: c# asp.net checkbox checkboxlist


【解决方案1】:

您正在使用来自 DB 的值检查复选框的文本。请检查复选框列表的值与数据库记录中的值。更正的代码如下所示-->

 if (chkBoxDaysList.Items[j].Value == s[i])
        {
            chkBoxDaysList.Items[j].Selected = true;
            break;
        }

【讨论】:

  • 我知道我犯了一些愚蠢的错误。感谢您的回复。对我来说,这些错误总是被忽视。
【解决方案2】:
protected void Button2_Click(object sender, EventArgs e)
    {
        try
        {
            con.Open();
            SqlCommand cmd = new SqlCommand("select * from empreg where empid=@empid", con);
            cmd.CommandType = CommandType.Text;
            cmd.Parameters.AddWithValue("@empid", txtid.Text);
            SqlDataAdapter adpt = new SqlDataAdapter(cmd);
            DataSet ds = new DataSet();
            adpt.Fill(ds);
            if (ds.Tables[0].Rows.Count > 0)
            {
                IDataReader dr = ds.Tables[0].CreateDataReader();
                txtfname.Text = ds.Tables[0].Rows[0][1].ToString();
                txtlname.Text = ds.Tables[0].Rows[0][2].ToString();
                RadioButtonList1.SelectedValue = ds.Tables[0].Rows[0][3].ToString();
                txtdob.Text = ds.Tables[0].Rows[0][4].ToString();
                txtdoj.Text = ds.Tables[0].Rows[0][5].ToString();
                txtsal.Text = ds.Tables[0].Rows[0][6].ToString();
                txtadd.Text = ds.Tables[0].Rows[0][7].ToString();
                DropDownList1.SelectedItem.Text = ds.Tables[0].Rows[0][8].ToString();
                //checkbox1
                string[] b = new string[50];
                while (dr.Read())
                {
                    b = dr["Dept"].ToString().Split(',');
                }

                for (int i = 0; i <= b.Length - 1; i++)
                {
                    foreach (ListItem item in this.CheckBoxList1.Items)
                        if (item.Value == b[i])
                        {
                            item.Selected = true;
                            i++;
                        }
                }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-16
    • 2016-05-25
    • 2014-07-16
    • 2016-05-30
    • 2016-02-05
    • 1970-01-01
    相关资源
    最近更新 更多