代码之家  ›  专栏  ›  技术社区  ›  Cheng Chen

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

  •  1
  • Cheng Chen  · 技术社区  · 15 年前

    <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);
    }
    

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

    custom="CustomValue" 他走了。 if (!IsPostBack) “块”。当然了,如果我把钥匙取下来,一切都会好的 if 声明。但是为什么要呈现其他标准属性呢?因为我把它放在

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

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

    2 回复  |  直到 15 年前
        1
  •  1
  •   VinayC    15 年前

    这是一种权衡。控件必须保留它在视图状态中支持的每个属性的值(非默认值)。因此,视图状态大小和页面大小自然会受到影响。因此,控件开发人员仅将最常用的属性返回到视图状态是有意义的。这里的情况也是如此——控件开发人员决定不将自定义属性返回到视图状态。

        2
  •  0
  •   jebberwocky    15 年前