我正在尝试将一个变量传递到我的"asp:Button CommandArgument“中--我知道在设置runat=server时,我必须克服一些困难,但我已经尝试了到目前为止所找到的所有方法,但都没有效果
我知道,如果我在"asp:Button CommandArgument“中显式地定义变量,那么我的代码就能很好地工作--但是一旦我尝试通过<% %>语法插入一个变量呢?变量不会替换为它所表示的字符串
我使用vStudio 2019社区预览版(和2017)作为我的集成开发环境,目标是.net框架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“中的变量被它的当前值所取代
我得到了什么?各种错误消息和my‘或“wrapped <%:<%# <%= variable %>’的字面翻译没有帮助
我知道我可以硬编码一些我想要完成的东西--但这并不是最优的,当我想通过"asp:Button CommandArgument“将变量日期传递给我的过程时,这对我没有帮助。
我知道我一定做错了什么,但无论如何也搞不清楚是什么错了。
有什么建议吗?
发布于 2019-03-29 22:20:32
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;
}
}https://stackoverflow.com/questions/55417098
复制相似问题