gpt4 book ai didi

c# - 无法在 DOM 中保留自定义属性?

转载 作者:行者123 更新时间:2023-11-28 02:51:32 24 4
gpt4 key购买 nike

一个非常简单的 ASP.NET Web 表单页面。

<asp:DronDownList id="ddl" runat="server">
<asp:Button id="btn" runat="server" Text="Do nothing but post back" />

在页面加载中:

if (!IsPostBack)
{
ListItem item = new ListItem("text1","value1");
item.Attributes["custom"] = "CustomValue";
ddl.Items.Add(item);
}

它渲染的 html:(看起来不错)

<select ...>
<option value="value1" custom="CustomValue">text1</option>
</select>

单击按钮后,我查看源代码,custom="CustomValue" 消失了。我知道你会说“这是因为你把它放在 if (!IsPostBack) block 中”。当然,如果我删除 if 语句,一切都会好起来的。但为什么会渲染其他 STANDARD 属性呢?由于我将其放在 if 语句中,我想输出将是:

<select ...></select>   // i suppose no options in it! 

为什么 ASP.NET“选择”属性?

最佳答案

这是一个权衡。控件必须保留它在 View 状态中支持的每个属性的(非默认)值。因此,自然会对 View 状态大小以及页面大小产生影响。因此,对于控件开发人员来说,仅将最常用的属性返回到 View 状态中才有意义。这里的情况也是如此 - 控件开发人员决定不将自定义属性支持到 View 状态中。

关于c# - 无法在 DOM 中保留自定义属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3657081/

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