我在通过从数据库中为同一用户获取值来预填充复选框列表时遇到一些问题,需要检查多个复选框。这是一个更新配置文件页面,我希望在此页面加载时根据用户在注册时所做的数据库检查多个复选框。所以,怎么做,我试了很多次,但只有最后一个值被检查,其他都没有被检查。单个用户可以有多个爱好。所以 checkboxlist 是针对爱好的,当更新页面加载时,已经检查了多个爱好,然后他也可以更新和添加更多爱好。更新我已经完成的部分我只希望复选框列表预先填充用户之前给出的所有值。提前致谢。
这是我的 update.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Update.aspx.cs" Inherits="Update" %>
<!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">
<div>
<table class="style1">
<tr>
<td class="style3">
<asp:Label ID="Label2" runat="server" Text="Login Name"></asp:Label>
</td>
<td colspan="2">
<asp:TextBox ID="txtlogin" runat="server" ReadOnly="True"></asp:TextBox>
</td>
<td>
</td>
</tr>
<tr>
<td class="style3">
<asp:Label ID="Label4" runat="server" Text="EmailId"></asp:Label>
</td>
<td colspan="2">
<asp:TextBox ID="txtemail" runat="server" ReadOnly="True"></asp:TextBox>
</td>
<td>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
ControlToValidate="txtemail" Display="Dynamic" ErrorMessage="Invalid"
ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td class="style3">
<asp:Label ID="Label5" runat="server" Text="Address"></asp:Label>
</td>
<td colspan="2">
<asp:TextBox ID="txtadd" runat="server" TextMode="MultiLine" Width="142px"
ReadOnly="True"></asp:TextBox>
</td>
<td>
</td>
</tr>
<tr>
<td class="style6">
<asp:Label ID="Label6" runat="server" Text="City"></asp:Label>
</td>
<td colspan="2" class="style7">
<asp:DropDownList ID="ddlcity" runat="server" Height="21px" Width="142px"
Enabled="False">
</asp:DropDownList>
</td>
<td class="style7">
</td>
</tr>
<tr>
<td class="style3">
<asp:Label ID="Label7" runat="server" Text="Pincode"></asp:Label>
</td>
<td colspan="2">
<asp:TextBox ID="txtpin" runat="server" ReadOnly="True" ></asp:TextBox>
</td>
<td>
<asp:RegularExpressionValidator ID="regexpin" runat="server"
ControlToValidate="txtpin" ErrorMessage="Numbers only(six digits)"
ValidationExpression="[0-9]{6}"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td class="style3">
<asp:Label ID="Label8" runat="server" Text="PaymentMode"></asp:Label>
</td>
<td colspan="2">
<asp:RadioButtonList ID="rbtnlstpay" runat="server" Height="28px" Width="225px"
Enabled="False">
</asp:RadioButtonList>
</td>
<td>
</td>
</tr>
<tr>
<td class="style3">
<asp:Label ID="Label9" runat="server" Text="Hobbies"></asp:Label>
</td>
<td colspan="2">
<asp:CheckBoxList ID="cblsthobbies" runat="server" Width="128px"
Enabled="False">
</asp:CheckBoxList>
</td>
<td>
</td>
</tr>
<tr>
<td class="style3">
</td>
<td class="style5" colspan="2">
</td>
<td>
</td>
</tr>
<tr>
<td class="style3">
</td>
<td>
<asp:Button ID="btnedit" runat="server" Text="Edit"
onclick="btnedit_Click" />
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td class="style4">
</td>
<td class="style2" colspan="2">
<asp:Label ID="lblresult" runat="server"></asp:Label>
</td>
<td class="style2">
</td>
</tr>
<tr>
<td class="style4">
</td>
<td class="style2" colspan="2">
</td>
<td class="style2">
</td>
</tr>
<tr>
<td class="style3">
</td>
<td colspan="2">
</td>
<td>
</td>
</tr>
<tr>
<td class="style3">
</td>
<td colspan="2">
</td>
<td>
</td>
</tr>
<tr>
<td class="style3">
</td>
<td colspan="2">
</td>
<td>
</td>
</tr>
<tr>
<td class="style3">
</td>
<td colspan="2">
</td>
<td>
</td>
</tr>
<tr>
<td class="style3">
</td>
<td colspan="2">
</td>
<td>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
这是我的 update.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
public partial class Update : System.Web.UI.Page
{
DataSet ds = new DataSet();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SqlConnection cn = new SqlConnection();
cn.ConnectionString = @"Data Source=.;Initial Catalog=UserRecords;Integrated Security=True";
SqlCommand cmd = new SqlCommand();
cmd.Connection = cn;
cmd.CommandText = "select * from CityMaster;select * from HobbyMaster;select * from PaymentModeMaster;select * from Users where LoginId = @Loginid;select * from UsersHobbies where LoginId = @Loginid";
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@Loginid",Session["loginid"].ToString());
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
ddlcity.Items.Add(new ListItem(dr["CityName"].ToString(), dr["CityId"].ToString()));
}
dr.NextResult();
while (dr.Read())
{
cblsthobbies.Items.Add(new ListItem(dr["Hobbyname"].ToString(), dr["HobbyId"].ToString()));
}
dr.NextResult();
while (dr.Read())
{
rbtnlstpay.Items.Add(new ListItem(dr["PaymentModename"].ToString(), dr["PaymentModeId"].ToString()));
}
dr.NextResult();
while (dr.Read())
{
txtlogin.Text = dr["LoginId"].ToString();
txtemail.Text = dr["EmailId"].ToString();
txtadd.Text = dr["Address"].ToString();
txtpin.Text = dr["Pincode"].ToString();
ddlcity.SelectedValue = dr["CityId"].ToString();
rbtnlstpay.SelectedValue = dr["PaymentModeId"].ToString();
}
dr.NextResult();
while (dr.Read())
{
for(int i = 0; i < dr.FieldCount; i++)
{
cblsthobbies.SelectedValue = dr["HobbyId"].ToString();
//cblsthobbies.SelectedValue = dr.GetValue(1).ToString();
}
}
cn.Close();
}
}
protected void btnedit_Click(object sender, EventArgs e)
{
txtemail.ReadOnly = false;
txtadd.ReadOnly = false;
ddlcity.Enabled = true;
txtpin.ReadOnly = false;
rbtnlstpay.Enabled = true;
cblsthobbies.Enabled = true;
btnedit.Text = "Update";
}
}