访问GridView中的行
本文关键字:GridView 访问 | 更新日期: 2023-09-27 17:58:37
我有以下ASPX代码:
<ItemTemplate>
<asp:HyperLink ID="BRANCH_NAME" runat="server"
NavigateUrl='<%# "mailto:"+Eval("OWNERS_EMAIL") %>'
Text='<%# Eval("BRANCH_NAME") %>'
ToolTip='<%# GetBranchAddress() %> '>
</asp:HyperLink>
</ItemTemplate>
代码背后的功能:
protected string GetBranchAddress(DataRow row)
{
return "<span style='"text-decoration:underline;'">"+
row["BRANCH_NAME"].ToString().Trim() + "</span><br />" +
row["OWNERS_FIRST_NAME"].ToString().Trim() + " " +
row["OWNERS_LAST_NAME"].ToString().Trim() + "<br />" +
row["OWNERS_EMAIL"].ToString().Trim() + "<br />" +
row["OWNERS_OFFICE_PHONE"].ToString().Trim() + "<br />" +
row["OWNERS_FAX_PHONE"].ToString().Trim();
}
我得到的错误是:
方法"GetBranchAddress"的重载不接受"0"个参数
如何在ASP GridView中访问row
,以便将其传递给函数?
谢谢。
不要试图将整个DataRow
传递到函数中,而是使用datakey指定要显示的字段,并传递行索引。
<asp:GridView ID="GridView1" runat="server" DataKeyNames="BRANCH_NAME, StreetAddress" ...>
ItemTemplate
中的代码看起来像这样:
<ItemTemplate>
<asp:HyperLink ID="BRANCH_NAME" runat="server"
NavigateUrl='<%# "mailto:"+Eval("OWNERS_EMAIL") %>'
Text='<%# Eval("BRANCH_NAME") %>'
ToolTip='<%# GetBranchAddress(Container.DisplayIndex) %> '>
</asp:HyperLink>
</ItemTemplate>
在您的函数中,您可以访问如下数据密钥值:
protected string GetBranchAddress(int rowIndex)
{
return GridView1.DataKeys[rowIndex]["BRANCH_NAME"].ToString();
}
在标记中,您没有将任何参数传递给GetBranchAddress,这就是您收到错误的原因。您应该将"this"传递到方法中,其中"this"是当前操作的对象(DataRow)。例如,
ToolTip='<%# GetBranchAddress(this) %> '