我有隐藏价值:
<input type="hidden" name="orderRef" value="<%=orderRef%>" />
我有一个asp按钮,我想把这个参数传递给aspx.cs函数:
<asp:Button ID="submitForFree" runat="server" OnCommand="btnPromoBtn_Click" CommandArgument="<%=orderRef%>" class="primary-button" Text="PayNow"></asp:Button>
但在函数中它显示了一个字符串“&lt;%= orderRef%&gt;” 我怎样才能把它放在CommandArgument中?
答案 0 :(得分:1)
您有两个选择
而不是尝试在标记中设置它,在OnInit之后的某个时间将其设置在代码隐藏中。
this.submitForFree.CommandArgument = orderRef;
不要在CommandArgument中传递值,只需从HttpRequest中读取它,隐藏变量在Request.Form
中公开。
protected void btnPromoBtn_Click(EventArgs e, object sender)
{
//var arg = e.CommandArgument;
var arg = Request.Form["orderRef"];
DoSomethingWithCommandArgument(arg);
}
答案 1 :(得分:0)
您可以像这样绑定CommandArgument
:
CommandArgument='<%# orderRef %>'
但是如果您的按钮位于Repeater,GridView,ListView等之外,则每次加载页面时都需要手动调用DataBind
。
protected void Page_Load(object sender, EventArgs e)
{
submitForFree.DataBind();
}