2015-03-03 6 views
0

Я пытаюсь получить значения строки, которые хранятся внутри GridView. Когда я использую обычные BoundFields, все работает. Я получаю все, что необходимо:Значения GridView в ячейках

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 показаны правильно сформированные гиперссылки. Однако, если я получаю текст для ячейки, он возвращает «< \ a href = DomainConfiguration.aspx? Suffix = example.com> example.com </a>" [без двух дополнительных слэшей] вместо "example.com "

Что мне нужно сделать, чтобы заставить GridView работать так, как я хочу? [Да, я предпочел бы использовать GridView, а не другой контроль.]

Спасибо.

+0

Почему вы не используете 'asp: HyperLinkField' вместо' asp: Bo undField'? – Aria

ответ

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; 
0

вместо вашего asp:Bounfield использования

<asp:TemplateField> 
<ItemTemplate> 
<asp:HyperLink ID="editLink" runat="server" onclick='<%#Eval("EditLink") %>'></asp:HyperLink> 
</ItemTemplate> 
</asp:TemplateField> 
Смежные вопросы