【发布时间】:2017-12-08 19:02:31
【问题描述】:
开发于:c# asp.net web forms 4.5
我查看了很多帖子,所有帖子都通过 datatextfield() 或类似的方式在其中创建了包含数据字段的超链接。或者从后端调用 eval。 这两个我都没有做,所以我尽我所能做每一件事,但没有奏效。 CommandField、HyperLinkeField、HyperLink、.. 都不起作用。
主要的一点是数据很好,但我似乎无法将其设为超链接。这种方式不能有超链接吗?
我正在尝试在 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了。
【问题讨论】:
-
在
new DataGridViewLinkColumn();上进行谷歌搜索,例如它非常简单 -
@MethodMan 谢谢老兄。会做。不知道那个。
-
这就是
Google.com的用途.. 其他人和您自己都应该养成这种习惯,这意味着首先搜索.. 询问第二 -
@MethodMan 我不认为我们可以使用 DataGridViewLinkColumn.. 它是用于 winForm 的,对吗?我正在构建一个 web 表单 asp.net 4.5 版本,我这里无法导入...
-
好的,然后用 google 搜索使用 asp.net 网络表单的示例.. 来吧..
标签: c# asp.net gridview webforms .net-4.5