繁体   English   中英

StringBuilder和Radiobuttonlist

[英]StringBuilder and Radiobuttonlist

我正在使用stringbuilder为正在处理的调查动态创建单选按钮列表。 该代码可以很好地验证,但是不会以HTML呈现。

这是因为我不应该使用stringbuilder来生成ASP Web控件吗?

代码在这里:

sb.Append(string.Format("<asp:RadioButtonList ID='" + qnumber + "' runat='server' RepeatDirection='Horizontal' RepeatLayout='flow' CssClass='answers'>"));
sb.Append(string.Format("<asp:ListItem Text='Strongly Agree' Value='1'></asp:ListItem>"));
sb.Append(string.Format("<asp:ListItem Text='Agree' Value = '2' ></ asp:ListItem>"));
sb.Append(string.Format("<asp:ListItem Text='Disagree' Value='3'></asp:ListItem>"));
sb.Append(string.Format("<asp:ListItem Text='Strongly Disagree' Value='4'></asp:ListItem>"));
sb.Append(string.Format("<asp:ListItem Text='Not Applicable' Value='5'></asp:ListItem></asp:RadioButtonList><asp:RequiredFieldValidator runat='server' ID='" + qnumber + "v"+ "' ControlToValidate='ID='" + qnumber + "' ErrorMessage='please answer the question' CssClass='warning' />"));

问题是,您不能强制您的代码在后面生成asp.Net代码,这些代码必须放在aspx页面内。 Asp.Net将html标签中的asp标签转换为HTML标签,并在后面的代码中侦听它们,这就是为什么您不能将asp标签发送到视图的原因,当代码后面的代码运行时,该视图已由asp.net处理。

最好的选择是将纯HTML内容发送到您的页面,并使用另一种方式读取其内容。 如果您很着急,建议您在回发表单之前使用Javascript填充HiddenField。

这是一个有关StringBuilder外观的示例:

sb.Append(string.Format("<input type="radio" name="answer" value="1" />Strongly Agree"));
sb.Append(string.Format("<input type="radio" name="answer" value="2" />Agree"));
sb.Append(string.Format("<input type="radio" name="answer" value="3" />Disagree"));
sb.Append(string.Format("<input type="radio" name="answer" value="4" />Strongly Disagree"));
sb.Append(string.Format("<input type="radio" name="answer" value="5" />Not Applicable"));

然后,您只需在javascript上使用以下代码即可将值设置为HiddenField:

$('#<%= youHiddenFieldId.ClientID %>').val($("input:radio[name='answer']:checked").val());

现在,您只需要在后面的代码上调用youHiddenFieldId.Value即可获取所选复选框的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM