我在gridview中使用HyperLinkField,我想链接到另一个URL ID.
<div id="searchResults" runat="server"> <asp:GridView ID="gvSearchResult" runat="server" AutoGenerateColumns = "false" CaptionAlign="NotSet" CellPadding="5"> <Columns> <asp:TemplateField HeaderText="Användare"> <ItemTemplate> <%# Eval("UName")%> <br /> </ItemTemplate> </asp:TemplateField> <asp:HyperLinkField DataNavigateUrlFields="UName" DataNavigateUrlFormatString='/MemberPages/profile.aspx?ID=<%# Eval("PID") %>' DataTextField="UName" HeaderText="Besök sida" SortExpression="Name" ItemStyle-Width="100px" ItemStyle-Wrap="true" /> </Columns> </asp:GridView> </div>
gridview使用datasource和databind.它在抱怨:
DataNavigateUrlFormatString="/MemberPages/profile.aspx?ID=<%# Eval("PID") %>"
我不知道在哪里使用<%#Eval(“PID”)%>,我确定有类似PID的东西,我已经进行了双重检查.
如果我使用NavigateUrl =“/ MemberPages / profile.aspx?ID =<%#Eval(”PID“)%>”我也得到了同样的错误:
Literal content ('<asp:HyperLinkField DataNavigateUrlFields="UName" DataNavigateUrlFormatString="/MemberPages/profile.aspx?ID=') is not allowed within a 'System.Web.UI.WebControls.DataControlFieldCollection'.
解决方法
如果需要使用“内部属性值,请使用”作为分隔符
Attribute='Some value with " symbol'
如果您需要使用’内部属性值,请使用“
Attribute="Some value with ' symbol"
还要更改列定义
<asp:HyperLinkField DataNavigateUrlFields="PID" DataNavigateUrlFormatString="/MemberPages/profile.aspx?ID={0}" DataTextField="UName" HeaderText="Besök sida" SortExpression="Name" ItemStyle-Width="100px" ItemStyle-Wrap="true" />
在DataNavigateUrlFormatString属性中,您使用DataNavigateUrlFields中指定的数据列(格式化类似于String.Format方法).
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。