2

我正在动态生成一个链接按钮并通过迭代集合来设置它的 postbackurl,当我将鼠标悬停在它上面时,链接按钮会显示正确的 url,但是当我单击链接按钮时,只传递了预期的五个查询字符串参数中的三个。我正在使用 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 回答