【问题标题】:asp.net quotes problems in data bindingasp.net引用数据绑定中的问题
【发布时间】:2014-04-02 06:21:08
【问题描述】:

我正在尝试将变量数据作为属性值绑定到输入控件,但是 vs2010 抛出警告:“验证(XHTML 1.0 过渡):属性值必须用引号引起来。”

谁能告诉我怎么解决?

这是我的代码:

<input type="button" id="btn_jump" runat="server" onclick=<%#"javascript:window.location.href='Default.aspx?var=" + m_id + "'" %> value="jump"/>

我在下面尝试了这些但得到一个错误:“服务器标签格式不正确”

<input type="button" id="btn_jump" runat="server"
onclick="<%#"javascript:window.location.href='Default.aspx?var=" + m_id + "'" %>" value="jump"/>

<input type="button" id="btn_jump" runat="server"
onclick='<%#"javascript:window.location.href='Default.aspx?var=" + m_id + "'" %>' value="jump"/>

这是正确的解决方案:

方法一:

btn_jump.Attributes.Add("onclientclick","javascript:window.location.href='Default.aspx?var=" + m_id + "'");

方法二:

<input type="button" id="btn_jump" runat="server"
onclick='<%#"javascript:window.location.href=\"Default.aspx?var=" + m_id + "\"" %>' value="jump"/>

【问题讨论】:

    标签: asp.net data-binding quotes


    【解决方案1】:

    您应该使用OnclientClick。执行以下方法。

    <input type="button" id="btn_jump" runat="server"
    onclientclick='redirect(<%#Eval("m_id")%>)' value="jump"/>
    
    
    function redirect(id) {
      location.href = 'Default.aspx?var=' + id;
    }
    

    或使用 Eval 占位符

    <input type="button" id="btn_jump" runat="server"
    onClientClick='<%# Eval("m_id", "location.href=Default.aspx?var={0}") %>' value="jump"/>
    

    或者从后面的代码中添加 onclientclick 属性

    btn_jump.Attributes.Add("onclientclick","javascript:window.location.href='Default.aspx?var=" + m_id + "'");
    

    【讨论】:

    • 非常感谢,这个方法效果很好。但是我有五个按钮可以重定向到不同的页面,所以我需要添加五个javascript函数,这太复杂了。按照我的方式,页面除了警告之外是有效的。
    • location.href 没有单引号的链接无法重定向,而且我的变量“m_id”不是数据库字段而是代码隐藏变量,所以我们不能使用eval()函数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-05
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 2010-09-05
    • 2018-01-16
    • 2011-01-17
    相关资源
    最近更新 更多