【问题标题】:ASP.net WebForms - How get html5 data-attribute from codebehind?ASP.net WebForms - 如何从代码隐藏中获取 html5 数据属性?
【发布时间】:2016-08-18 17:50:48
【问题描述】:

我正在尝试从 HtmlControl 获取数据属性(数据图标)... 该数据属性是从 js 函数设置的,但是当页面进行回发时,它(在代码隐藏上)返回一个空字符串

有什么方法,有什么属性或者其他的吗??

我的代码:

HTML:

<button id="btnIcon" runat="server" class="btn btn-default iconpicker" data-icon=""></button>

后面的代码:

string icon = btnIcon.Attributes["data-icon"].ToString();

PS:属性是由一个js插件通过jQuery改变的。

【问题讨论】:

  • 我怀疑你能做到,属性在客户端被改变,服务器端只发送 POST 变量,所以属性不是。也许您也可以将属性存储在隐藏字段中?
  • 你如何在 jQuery 中设置 data-icon 值?从技术上讲,只要控件是 asp.net 元素,您就可以访问它的属性。
  • @DinoMyte 不,这不是真的。回发时仅提交表单值。属性不是,除非您手动将它们与表单值一起放入。

标签: javascript c# jquery asp.net html


【解决方案1】:

@Gusman 是对的。你需要一个隐藏字段

<asp:HiddenField ID="hfDataIcon" Value="" runat="server" ClientIDMode="Static" />

让 jquery 不仅设置 data-icon 还设置 hfDataIcon 值。当您 eval 绑定到值时,您还可以用 startvalue 填充隐藏字段。

<asp:HiddenField ID="hfDataIcon" Value="" runat="server" ClientIDMode="Static" Value='<%# Eval("dataIcon") %>' />

这里有一些jQuery来设置hiddenfield,回发时可以在后面的代码中访问。

<script type="text/javascript" language="javascript">
$(document).ready(function () { 
    $('input#hfDataIcon').val('icon name here');
});
</script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 2013-03-04
    • 2011-06-08
    • 2012-11-16
    • 1970-01-01
    • 1970-01-01
    • 2018-12-27
    相关资源
    最近更新 更多