我正在尝试获取我保留在GridView中的字符串值。 当我使用常规的BoundFields时,事情变得有效。我得到了所需的一切:
string my_value = myGrid.Rows [rowIndex].Cells[1].Text;
但是,一个网格需要在其中一个列中包含超链接条目。我做了:
<asp:BoundField DataField="domainName"
HeaderText="Domain"
SortExpression="domainName"
HtmlEncode="false"
DataFormatString="<a href=DomainConfiguration.aspx?suffix={0}>{0}</a>"
我的ASPX页面显示正确形成的超链接。但是,如果我为单元格检索文本,它将返回&#34;&lt; \ a href = DomainConfiguration.aspx?suffix = example.com&gt; example.com&lt; / a&gt;&#34; [没有两个额外的斜杠],而不是&#34; example.com&#34;
我需要做什么才能让GridView以我想要的方式工作? [是的,我宁愿使用GridView而不是其他控件。]
谢谢。
答案 0 :(得分:1)
而不是asp:BoundField
显示炒作链接,最好使用asp:HyperLinkField
,如:
<Columns>
<asp:HyperLinkField DataNavigateUrlFields="domainName" HeaderText="domainName" DataNavigateUrlFormatString="DomainConfiguration.aspx?suffix={0}" DataTextField="domainName" />
</Columns>
要获取该列的字符串值,您应该尝试这样做:
string my_value= ((HyperLink)myGrid.Rows[rowIndex].Cells[1].Controls[0]).Text;
答案 1 :(得分:0)
而不是asp:Bounfield
使用
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="editLink" runat="server" onclick='<%#Eval("EditLink") %>'></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>