2

リンクボタンを動的に生成し、コレクションを反復処理してpostbackurlを設定しています。リンクボタンにマウスを合わせると、正しいURLが表示されますが、リンクボタンをクリックすると、目的の5つのクエリ文字列パラメーターのうち3つだけが渡されます。私はFirefoxを使用しています。これが私のコードです

    foreach(var item in collection)
{
linkbutton b = new linkbutton();

linkbutton.postbackurl="somepage.aspx?" + "param1="+ item.val1 + "&param2=" + item.val2
                       + "&param3=" + item.val3+ "&param4=" + item.val4+ "&param5="
                       +item.val5;  
PlaceHolder1.Controls.Add(b);
}

ただし、リンクボタンをクリックするとブラウザが開きます

somepage.aspx?param1=val1&param2=val2&param5=val5

すべての値がコレクションアイテムに存在し、ブラウザはリンク自体のparam3,4を無視します:<もう一度ヘルプ!!!

4

1 に答える 1

1

このシナリオでは、asp:HyperLinkが必要ないだけですasp:LinkButton。コードにいくつかのエラーがあります。より最適化された/読みやすいバージョンはこれになります

foreach(var item in collection)
{
    var btn = new HyperLink();

    btn.NavigateUrl=String.Format("somepage.aspx?param1={0}&param2={1}&param3={2}&param4={3}&param5={4}",
                item.val1,
                item.val2,
                item.val3,
                item.val4,
                item.val5);  
    PlaceHolder1.Controls.Add(btn);
}

お役に立てれば。

于 2012-12-08T16:16:52.343 に答える