[英]Pre-select checkBox from database fields in asp.net using c#
我有一個要從數據庫表中預先選擇的組支票簿列表。 我正在使用以下代碼來選擇它,但它不起作用
表中的數據以以下格式示例存儲:-
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 dr;
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;
}
}
}
}
現在,代碼不會產生任何錯誤,但是也不會選中任何復選框
您正在使用數據庫中的值檢查復選框的文本。 請使用數據庫記錄中的值檢查復選框列表的值。更正的代碼如下所示->
if (chkBoxDaysList.Items[j].Value == s[i])
{
chkBoxDaysList.Items[j].Selected = true;
break;
}
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++;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.