asp.net的超级链接字段从数据库设置navigateurl“http = blabla / Id =”值

时间:2013-10-28 17:55:26

标签: asp.net gridview hyperlink templatefield

我是asp.net的新手。请帮忙。 我有2个文件。一个default.aspx,一个default.aspx.cs。

在default.aspx中,我有:

<asp:GridView ID="DataGridView" runat="server" AutoGenerateColumns="false" RowStyle-BackColor="#A1DCF2" HeaderStyle-BackColor="#3366FF" HeaderStyle-ForeColor="White">
    <rowstyle backcolor="LightCyan" forecolor="Black" font-italic="true"/>

     <alternatingrowstyle backcolor="PaleTurquoise" forecolor="Black" font-italic="true"/>

    <Columns>
        <asp:BoundField ItemStyle-Width="15%" DataField="ID" HeaderText="ID" />

        <asp:hyperlinkfield text="Log" navigateurl="http://somelink&RecordId=" target="_blank" ItemStyle-Width="15%" HeaderText="Log" />

        <asp:BoundField ItemStyle-Width="15%" HeaderText="Delayed Delivery" />
    </Columns>
</asp:GridView>

我的问题:

专栏:超链接日志:

  1. 我想将它绑定到数据库中名为“Base_Id”的列,但是当我在超链接定义中使用DataField =“Base_Id”时,它会出错;

  2. 我想将base_Id附加到url的末尾,以便它给出navigateurl =“http:// somelink&amp; RecordId = baseId_value”;我尝试过TemplateField,但Visual Studio无法识别它。

  3. 对于延迟交付,我需要比较数据并做一些数学运算。有没有办法在default.aspx.cs中添加一个函数?如果有,请有人举个例子吗?

  4. 任何想法都表示赞赏。非常感谢。 =)

1 个答案:

答案 0 :(得分:3)

转换列

  <asp:hyperlinkfield text="Log" navigateurl="http://somelink&RecordId=" target="_blank" ItemStyle-Width="15%" HeaderText="Log" />

到TemplateColumn并执行此操作

<asp:TemplateField HeaderText="Log" ItemStyle-Width="15%">
        <ItemTemplate>
            <asp:HyperLink runat="server" 
                NavigateUrl='<%# GetUrl(Eval("Base_Id"))%>' 
                text="Log"></asp:HyperLink>
        </ItemTemplate>
    </asp:TemplateField>

和代码隐藏

protected string GetUrl(object id)
{
return "http://somelink&RecordId=" + id;
}

希望这有帮助!

此致 UROS