0

私のテーブルには、ページロードでバインドされる以下の列があります。そこにあるパラメーターは正常に機能しますが、次の列であるフルネームであるパラメーターを追加する必要がありますが、構文を理解するのに問題があります。

これが私のASPです

<asp:TemplateField HeaderText="ID">
    <ItemTemplate>
        <asp:HyperLink ID="hyperLeadID" runat="server" NavigateUrl='<%#Eval("ID","/documents/Q-Sheet.aspx?LeadID={0}&isHappyCallReferral=yes&isHappyName={1}") %>'
            Text='<%#Eval("ID")%>'></asp:HyperLink>
    </ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Referral Name">
    <ItemTemplate>
        <asp:Label ID="lblRefName" CssClass="gvItem" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Name") %>'></asp:Label>
    </ItemTemplate>
</asp:TemplateField>

ID列の最後に表示されているように、isHappyName = {1}を追加しました。これは、0から始まる次の列を選択すると想定しましたが、「インデックス(ゼロベース)はより大きい必要があります」というエラーをスローし続けます。ゼロ以下で、引数リストのサイズ未満です。」

誰かがURLを介してユーザー名を渡すのを手伝ってもらえますか

ありがとう

4

2 に答える 2

3

ハイパーリンクを次のように書き直します。

NavigateUrl='<%# string.Format("/documents/Q-Sheet.aspx?LeadID={0}&isHappyCallReferral=yes&isHappyName={1}", Eval("ID"), Eval("HappyName"))%>'
于 2012-06-21T15:16:38.650 に答える
0

問題はString.Formatの呼び出しにあります(おそらく<asp:HyperLink>これは内部で行っています)。これは単一の引数でのみ提供されています{1}が、2番目の提供されていない引数を参照しています。

代わりに、asp:HyperLink(およびASP.NETの組み込みデータバインディング)を使用<a href="#">せずにURIを手動で設定してみてください-この理由から、私はSystem.Web.UI.WebControlsのファンではありません(調べることを強くお勧めします)機会があればASP.NETMVC)。

于 2012-06-21T15:15:29.990 に答える