C# 如何在没有数据字段的gridview中创建超链接?

C# 如何在没有数据字段的gridview中创建超链接?,c#,asp.net,gridview,webforms,.net-4.5,C#,Asp.net,Gridview,Webforms,.net 4.5,在:c#asp.net web forms 4.5中开发 我看过很多帖子,它们都制作了一个超链接,其中包含datafield、by datatextfield()或类似内容。。或者从后端调用eval。 这两件事我都没有做,所以我尽我所能去做,但都没用。命令字段,超链接字段,超链接。。一切都不管用 主要的一点是数据出来的很好,但我似乎不能让它超链接。这样的超链接是不可能的吗 我正在尝试在gridview上创建超链接。 问题是我要制作超链接的专栏 不从数据字段获取数据 它通过gridview的onR

在:c#asp.net web forms 4.5中开发

我看过很多帖子,它们都制作了一个超链接,其中包含datafield、by datatextfield()或类似内容。。或者从后端调用eval。 这两件事我都没有做,所以我尽我所能去做,但都没用。命令字段,超链接字段,超链接。。一切都不管用

主要的一点是数据出来的很好,但我似乎不能让它超链接。这样的超链接是不可能的吗

我正在尝试在gridview上创建超链接。 问题是我要制作超链接的专栏 不从数据字段获取数据

它通过gridview的onRowDataBound方法获取它 像这样的

<asp:GridView runat="server" ID="someGrid" CellPadding="10" 
    DataKeyNames="idx" AutoGenerateColumns="false"
    selectMethod="someGrid_GetData" ItemType="someTable"
    updateMethod="someGrid_UpdateItem" AutoGenerateEditButton="true"
    deleteMethod="someGrid_DeleteItem" AutoGenerateDeleteButton="true"
    onRowDataBound="someGrid_RowDataBound">
    <Columns>
        <asp:BoundField DataField="thing1" HeaderText="thing1" />
        <asp:BoundField DataField="thing2" HeaderText="thing2"/>
        <asp:DynamicField DataField="poDate" DataFormatString="{0:d}" />
        <asp:BoundField HeaderText="vendor" />
        <asp:CommandField HeaderText="sku" ShowSelectButton="true" SelectText="{0}" ButtonType="Link"/>
    </Columns>
</asp:GridView>
    protected void soGrid_RowDataBound(object sender, GridViewRowEventArgs e)
    {  
        using (soAction soa = new soAction())
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                string s = e.Row.Cells[2].Text;
                string thin1 = soa.get_thin1(s);
                e.Row.Cells[4].Text = thin1;

                string thin2 = soa.get_thin2(s);
                e.Row.Cells[5].Text = thin2;
            }
        }
    }
谢谢

编辑: 也许我不清楚这里的挑战是什么。。 通常,示例在gridview中使用dataTextField属性,但 我无法使用dataTextField属性,因为我正在绑定数据 取决于随后渲染的模型。 我这样做是因为我想将itemType设置为someTable
因此,我可以使用asp.net的updatemethod和deleteMethod。

只需使用这样的TemplateField,就可以在TemplateField中执行任何操作,组合多列数据,创建控件,等等:

<Columns>    
<asp:TemplateField HeaderText="FirstName" SortExpression="FirstName">
        <EditItemTemplate>
            <asp:TextBox ID="TextBox1" runat="server"
                Text='<%# Bind("FirstName") %>'></asp:TextBox>
        </EditItemTemplate>
        <ItemTemplate>
            <asp:Label ID="Label1" runat="server"
                Text='<%# Bind("FirstName") %>'></asp:Label>
        </ItemTemplate>
    </asp:TemplateField>
</Columns>


新DataGridViewLinkColumn()上进行谷歌搜索对于示例,它非常简单forward@MethodMan谢谢你,伙计。行。这就是
Google.com
的目的。。别人和你自己都应该养成这样的习惯,也就是说先搜索。。问second@MethodMan我认为我们不能使用DataGridViewLinkColumn。。是给winForm的,对吧?我正在构建一个web表单asp.net 4.5版本,但我无法在此处导入它…好的,然后在谷歌上搜索使用asp.net web表单的示例。。来吧,这正是我需要的。我只是在你发这篇文章之前想出来的。谢谢,但是如果你早点发这个,我至少可以省下一天的时间。不过还是谢谢你。