什么意思“服务器标签形成不好”,这个按钮会发生什么?

时间:2013-10-03 17:20:41

标签: javascript asp.net .net eval

这是我的按钮:

<asp:LinkButton ID="lnkButton" 
    OnClientClick="showEnroll(this,true,'<%# Eval("EventId") %>'); return false"      
    runat="server" CommandArgument='<%# Eval("EventId") %>'  />

这是错误:“服务器标签格式不正确”

2 个答案:

答案 0 :(得分:1)

这意味着标记无效,这是因为内联数据绑定表达式。这样的事情会更好:

OnClientClick='<%# string.Format("showEnroll(this, true, \'{0}\'", Eval("EventId")) %>'

注意:我没有验证上面的代码。它旨在说明一个概念,可能需要调整。

答案 1 :(得分:1)

在你的绑定中(例如网格视图的RowDataBound),添加如下逻辑:

// Attempt to find the control
var theLinkButton = e.Row.FindControl("lnkButton") as LinkButton;

// Only try to use the control if it was actually found
if(theLinkButton != null)
{
    // Grab the event ID from wherever here

    // Set the OnClientClick attribute here
    theLinkButton.Attributes.Add("onClientClick", 
        "showEnroll(this,true,'" + theEventId.ToString() + "'); return false");
}