【问题标题】:The server tag is not well formed - hyperlink databound服务器标签格式不正确 - 超链接数据绑定
【发布时间】:2013-12-26 08:48:50
【问题描述】:
我的超链接有格式问题,它与文本部分一起工作正常,所以我知道这是 JavaScript 的问题,但不知道问题是什么。
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="hypCustType" runat="server"
Text='<%# DataBinder.Eval(Container.DataItem, "CustType") %>'
NavigateUrl="javascript:sendval('<%# DataBinder.Eval(Container.DataItem, "CustType") %>');">
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
【问题讨论】:
标签:
c#
javascript
asp.net
webforms
【解决方案1】:
'问题是,你已经关闭了 NavigateUrl 属性中的字符串。您应该在内联代码中使用' 或\" 来不结束字符串。
所以你应该试试这个:
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="hypCustType" runat="server"
Text='<%# DataBinder.Eval(Container.DataItem, "CustType") %>'
NavigateUrl="javascript:sendval('<%# DataBinder.Eval(Container.DataItem, \'CustType\') %>');">
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
【解决方案2】:
用普通的html标签链接替换asp:hyperlink:
<a href="javascript:sendval('<%# DataBinder.Eval(Container.DataItem, "CustType") %>');">
<%# DataBinder.Eval(Container.DataItem, "CustType") %>'</a>
【解决方案3】:
试试这样:
<asp:HyperLink ID="hypCustType" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "CustType") %>' NavigateUrl='<%# "javascript:sendval(\"" + DataBinder.Eval(Container.DataItem, "CustType") + "\");" %>'></asp:HyperLink>