我正在尝试将变量传递到我的“ asp:Button CommandArgument”中-我知道在设置了runat = server的情况下我必须跳过一些箍,但是我已经尝试了到目前为止找到的所有内容,但无济于事
我知道我的代码运行良好,因为如果我在“ asp:Button CommandArgument”中显式定义变量,则一切正常-但是,只要我尝试通过<%%>语法插入变量?变量不会被其表示的字符串替换
我正在使用vStudio 2019社区预览版(和2017)作为我的IDE,以.net Framework 4.7.2为目标-一切都构建良好,并且我知道该变量的值已设置-这只是没有将其纳入我的“ asp:Button CommandArgument”,而我需要它
我已经尝试了所有发现的东西-我找到的所有<%$>语法的排列,都尝试使用CodeExpressionBuilder
我有问题的代码的相关部分是
<% if (variable is "value") { %>
<asp:Button ID = "button1"
runat = "server"
Text = "Processing '<%: variable %>' Records"
CommandArgument = '<%: variable %>'
OnCommand = "button1_Click"
/>
<% } %>
我希望我将插入到“ asp:Button CommandArgument”中的变量替换为其当前值
我得到什么?各种错误消息以及“”或“包裹的<%:<%#<%= variable%>”的字面翻译无济于事
我知道我可以对一些我想完成的事情进行硬编码-但这并不是最佳选择,当我想通过“ asp:Button CommandArgument”将可变日期传递给我的过程时,这也无济于事
我知道我一定做错了-但是,对于我的一生,无法弄清楚什么
有什么建议吗?
答案 0 :(得分:1)
ASP.NET不允许您这样声明控件:
<asp:Button ID = "button1"
runat = "server"
Text = "Processing '<%: variable %>' Records"
CommandArgument = '<%: variable %>'
OnCommand = "button1_Click"
/>
原因是<asp:Button … />
在任何内联语句(例如<%: variable %>
)之前由解释器进行了预处理。
要设置/修改ASP.NET表单控件的属性,必须在代码隐藏中更改它们。最受欢迎的地方将是Page_Load()
事件。像这样:
void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
button1.Text = "Processing " + variable + " Records";
button1.CommandArgument = variable;
}
}