开发:c#asp.net web forms 4.5
我查看过很多帖子,所有帖子都有一个超链接,其中包含数据字段,datatextfield()或类似的..或者来自后端的eval。 我没有做到这一点,所以我尝试尽我所能,但它没有工作。 CommandField,HyperLinkeField,HyperLink,......都没有用。
重点是数据很好,但我似乎无法使其超链接。这样就不可能有超链接吗?
我试图在gridview上创建一个超链接。 问题是我试图制作超链接的专栏 没有从数据字段中获取数据。
它通过gridview的onRowDataBound方法得到它 像这样......
let typeName = String(describing: type(of:value))
在代码背景上,它就像这样..
<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>
谢谢!
编辑: 也许我不清楚这里面临的挑战是什么...... 通常,这些示例在gridview中使用dataTextField属性 我无法使用dataTextField属性,因为我绑定了数据 取决于之后呈现的模型。 我这样做是因为我想将itemType设置为someTable 所以我可以使用asp.net的updatemethod和deleteMethod。
答案 0 :(得分:1)
只需使用像这样的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>