Установка значения гиперссылки для сетки данных в asp.net - PullRequest
0 голосов
/ 09 октября 2011

У меня есть сетка данных, которая заполняется DirectoryInfo. Столбцы: Имя , Дата & Размер . Значение Name является гиперссылкой.

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 Ответ

0 голосов
/ 09 октября 2011

Вы пытались создать 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
}
...