gpt4 book ai didi

c# - 在 c# .net 中将文本框动态添加到数据绑定(bind)复选框列表

转载 作者:行者123 更新时间:2023-11-30 16:52:50 25 4
gpt4 key购买 nike

我有一个 .net 网络应用程序、c# 后端、sql server 数据层。我有一个 asp:checkboxlist,我通过直接数据绑定(bind)从存储过程中填充它:

ASP.net

<asp:CheckBoxList ID="cblMyPlans" runat="server" RepeatColumns="4">
</asp:CheckBoxList>

C#

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLConn"].ToString());
SqlCommand cmd = new SqlCommand("SelectMyPlans", conn);
cmd.CommandType = CommandType.StoredProcedure;
conn.Open();

using(SqlDataReader dr = cmd.ExecuteReader()) {
while (dr.Read()) {
cblMyPlans.Items.Add(new ListItem(dr["Name"].ToString(), dr["PlanID"].ToString()));

}
}
conn.Close();
conn.Dispose();

我不确定它是否可能,但基于来自 SqlDataReader 的特定标志,我需要动态添加一个小的 textbox 到每个项目满足该标志的 cbl。

如何在 databind 期间动态添加 asp:TextBox

最佳答案

您可以使用“手动”元素动态添加您的 CheckBoxList。

此代码将创建与 CheckBoxList 相同的 html,但您可以根据需要添加其他元素...

代码隐藏:

public void FillPH()
{
var MyList = new List<ListItem>
{
new ListItem("One", "1"),
new ListItem("Two", "2"),
new ListItem("Three", "3")
};

Table myTable = new Table();

foreach (var item in MyList)
{
//Create new checkbox
CheckBox CB = new CheckBox();
CB.Text = item.Text;
CB.ID = item.Value;

//Create tablr row and td, then adds them accordignly
TableRow TR = new TableRow();
TableCell TD = new TableCell();
TD.Controls.Add(CB);
TR.Controls.Add(TD);

//IF <YOUR FLAG GOES HERE>-->
if (item.Value == "2")
{
//Create your input element and place it in a new Table cell (TD2)
TextBox TB = new TextBox();
TB.ID = string.Format("tb_{0}", item.Value);
TableCell TD2 = new TableCell();
TD2.Controls.Add(TB);
TR.Controls.Add(TD2);
}

myTable.Controls.Add(TR);
}

fillMe.Controls.Add(myTable);
}

正面:

 <div>
<asp:PlaceHolder ID="fillMe" runat="server"></asp:PlaceHolder>
</div>

关于c# - 在 c# .net 中将文本框动态添加到数据绑定(bind)复选框列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32081551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com