超链接字段从C#获取数据

时间:2014-04-22 17:47:52

标签: asp.net

我想在我的数据网格中创建一列超链接字段。但是,为了为每个链接创建url,我需要一个在后面的代码中生成的guid。有没有办法获取该值并在我的数据网格控件中使用它?

1 个答案:

答案 0 :(得分:0)

当然......在DataGrid中使用OnItemDataBound

<asp:DataGrid ID="DataGrid1" runat="server" AutoGenerateColumns="False" Width="100%"
    ShowHeader="false" OnItemDataBound="DataGridODB" BorderStyle="None" GridLines="None"
    CssClass="FormGrid">
    <Columns>
        <asp:TemplateColumn>
            <ItemTemplate>
                <asp:HyperLink ID="MyHiperLynk1" runat="server" />
                <asp:HyperLink ID="MyHiperLynk2" runat="server" />
            </ItemTemplate>
        </asp:TemplateColumn>
    </Columns>
</asp:DataGrid>

抓住一些数据仓字段,或者生成你的guid代码

protected void DataGridODB(object sender, DataGridItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        int LinkID = Convert.ToInt32(DataBinder.Eval(e.Item.DataItem, "LinkID").ToString());
        Guid myGuid = new Guid();
        // populate your GUID code here
        ((HyperLink)e.Item.FindControl("MyHiperLynk1")).NavigateUrl = String.Format("http://www.lmnop.qrs/default.aspx?id={0}&guid={1}", LinkID, myGuid);
        ((HyperLink)e.Item.FindControl("MyHiperLynk2")).NavigateUrl = String.Format("http://www.lmnop.qrs/index.aspx?id={0}&guid={1}", LinkID, myGuid);
    }
}