Установка значения гиперссылки для сетки данных в asp.net
У меня есть сетка данных, которая заполняется DirectoryInfo. Столбцы: Имя, Дата и Размер. Значение имени является гиперссылкой.
URL гиперссылки должен быть: "javascript:openFile('" & sFileName & "');"
Мой код:
Dim sFilePath As String = strDirectoryPath + OrderDocName
Dim dirInfo As New DirectoryInfo(strDirectoryPath)
dgOrderDocList.DataSource = dirInfo.GetFiles("*.*")
dgOrderDocList.DataBind()
<asp:DataGrid runat="server" id="dgOrderDocList"
AutoGenerateColumns="False" AlternatingItemStyle-BackColor="#eeeeee"
HeaderStyle-BackColor="Navy" HeaderStyle-ForeColor="White"
HeaderStyle-Font-Size="10pt" HeaderStyle-Font-Bold="True">
<Columns>
<asp:HyperLinkColumn DataNavigateUrlField="Name" DataTextField="Name"
HeaderText="File Name" ItemStyle-Font-Size="Small" />
<asp:BoundColumn DataField="Length" HeaderText="File Size"
ItemStyle-HorizontalAlign="Right"
DataFormatString="{0:#,### bytes}" ItemStyle-Font-Size="Small"/>
<asp:BoundColumn DataField="LastWriteTime" HeaderText="Date"
ItemStyle-HorizontalAlign="Center" DataFormatString="{0:d}" ItemStyle-Font-Size="Small"/>
</Columns>
</asp:DataGrid>
1 ответ
Вы пытались создать TemplateField? Затем вы можете перегрузить событие OnRowDataBound, найти элемент управления привязки и использовать серверную логику для создания привязки. Что-то вроде этого..
<columns>
<asp:TemplateField>
<asp:ItemTemplate>
<asp:HyperLink id="hyperlink1" runat="server" />
</asp:ItemTemplate>
</asp:TemplateField>
</columns>
gv_OnRowDataBound(Object sender, GridViewRowEventArgs e){
GridViewRow row = this.gv.Rows[e.index];
var hyperLink = row.findControl("hyperlink1");
\\Set target and NavigateUrl properties
}