0

次の 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' 引数を取らない

rowASP GridView にアクセスして関数に渡すにはどうすればよいですか?

ありがとう。

4

2 に答える 2

2

全体を関数に渡そうとする代わりに、DataRowデータキーを使用して表示するフィールドを指定し、行インデックスを渡します。

<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();
}
于 2013-02-11T17:53:07.640 に答える
0

マークアップでは、パラメーターを GetBranchAddress に渡していないため、エラーが発生しています。メソッドに「this」を渡す必要があります。ここで、「this」は現在操作されているオブジェクト (DataRow) です。例えば、

ToolTip='<%# GetBranchAddress(this) %> '
于 2013-02-11T17:44:31.160 に答える