gpt4 book ai didi

select - 如何在 c# 后面的代码中创建 html 选择?

转载 作者:行者123 更新时间:2023-12-03 19:36:05 25 4
gpt4 key购买 nike

我们需要动态创建 html 下拉列表。以下是我们当前的代码。 Option1 和 Option2 是包含所有项目的字符串。我们有两个字符串的原因是我们将所有项目分成两组。

<td>
<div id="dvGroup" style="display:none;" runat="server"></div>
</td>

string Option1 = "<optgroup label='Group1'><option>1</option><option1>2</option>";
string Option2 = "<optgroup label='Group2'><option>a</option><option>b</option><option>c</option>;

dvGroup.InnerHtml = "<Select name='ddGroup' id='ddGroup'>" + Option1 + Option2 + "</Select>";

但是通过设置 InnerHtml 可能会带来一些安全问题。所以我将其更改为:

HtmlSelect select = new HtmlSelect();
select.ID = "ddGroup";
select.Name = "ddGroup";
select.ClientIDMode = ClientIDMode.Static;
dvGroup.Controls.Add(select);

select.Controls.Add(new LiteralControl(Option1 + Option2));

但是,它在 select.Controls.Add… 行抛出以下错误

'System.Web.UI.HtmlControls.HtmlSelect' does not allow child controls. 

我该如何解决这个问题?另一个问题是,将 ClientIDMode 设置为 Static 仅确保 id 未更改,但名称仍被添加额外的东西。如何确保名称也未更改?

最佳答案

你可以这样做:

HtmlSelect mHtmlSelect = new HtmlSelect();
mHtmlSelect.ID = "ddGroup";
mHtmlSelect.Name = "ddGroup";
mHtmlSelect.ClientIDMode = ClientIDMode.Static;

String Option1 = "Hello";
String Option2 = "World";
mHtmlSelect.Items.Add(new ListItem(Option1 + Option2));
this.Controls.Add(mHtmlSelect);

输出:

<select name="ddGroup" id="ddGroup">
<option value="HelloWorld">HelloWorld</option>
</select>

关于select - 如何在 c# 后面的代码中创建 html 选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21997593/

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