【问题标题】:Set the html 'name' attriubute of an asp:DropDownList设置 asp 的 html 'name' 属性:Dr​​opDownList
【发布时间】:2011-07-04 09:49:56
【问题描述】:

我有一个 asp:DropDownList 元素,我需要在后面的代码中引用它,但我需要它有一个非常具体的名称,其中包含特殊字符,所以我不能将它用作 id。

是否可以在 .aspx 文件中手动设置名称?当我现在尝试这样做时:

html 使用两个名称属性呈现。

【问题讨论】:

  • 一般你不能这样做。服务器控件将使用 id 呈现,例如 container_ControlId,名称将为 container$ControlId。

标签: asp.net vb.net webforms


【解决方案1】:

name 属性是自动生成的,这意味着您无法设置它。但是您可以通过控件的 ClientID 属性访问它。

【讨论】:

  • 不幸的是,设置名称属性是我的应用程序的要求。还有其他解决方法吗?还是最好停止使用 web 控件并使用纯 HTML?
  • ID中需要什么样的特殊字符?
  • 这里是一个例子:用户[名称]
【解决方案2】:

虽然不完全按照 OP 的要求,但可以在页面加载后使用 JavaScript 或 jQuery 更改名称属性。这是假设您可以将所需的名称放在其他地方。例如,假设您将 DropDownList 的 Class 属性设置为“MyValue123”,那么您可以在页面加载或提交时添加 JavaScript 点击处理程序(以下假设支持 jQuery):

<select class="MyValue123">
</select>    

<script type="JavaScript">
    function fixSelectNames(){
        $("select").each(function(){
            $(this).attr("name", $(this).attr("class"));
        });
    }
    $(document).ready(function(){
        fixSelectNames();
    });
</script>

<input type="submit" value="Go" onclick="fixSelectNames();" />

当然,JavaScript 代码可以通过 ASPX 编写,以便它包含“MyValue123”的正确值。当放置在提交按钮的 JavaScript on-click 处理程序中时,代码将在浏览器发布参数之前执行,从而导致服务器以更新的名称接收值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-08
    • 1970-01-01
    • 2020-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    相关资源
    最近更新 更多