[英]can not find dynamic html select in code behind
我有一个名为“ row”的类,它具有3个属性{property,instance,degree}。 现在我想向用户显示我的项目或行,如果他更改了课程的第三部分,我将对其进行编辑。 这是我动态生成行的代码,numberOfInstance是行数。
<div id="hidden" class="hiddendiv">
<%
string matn = "";
for (int i = 0; i < numberOfInstance ; i++)
{
row r= new row();
r = a[i];
matn+= " <div class='CMSdiv'>";
matn += "<input id='Text"+i+"' class='labelhid' type='text'"+"value = '"+r.Property+ "'/>";
matn += "<input id='Text2" + i + "' class='labelhid' type='text'" + "value = '" + r.instance+ "'/>";
matn += " <select id='Select" +i+ "'class='drophid' runat='server'>";
matn += " <option value= '"+ "خیلی زیاد"+"'>خیلی زیاد" + " <option value= '"+"زیاد'"+">زیاد";
matn += " <option value='"+"متوسط'"+">متوسط";
matn += " <option value='" + "کم'" + ">کم";
matn += "</select>";
matn += "</div>";
Response.Write(matn);
matn = "";
}
%>
</div>
现在,如果用户单击“选择”并选择一个选项,我将得到它的值并在后面的代码中倒入r.degree。 但是无论我做什么,我都无法在后面的代码中找到它,并且它为null。 这些是我的尝试:
var val = Request["Select" + i];
string selection = Request.Form["Select" + i];
hd = (HiddenField)Page.FindControl("Select" + i);
hd = (HiddenField)Control.FindControl("Select" + i);
您不能通过Response.Write生成服务器端控件( 此处提供更多信息)。 因此,您要写入输出的html元素是客户端控件而不是服务器端,并且无法使用Page.FindControl方法找到。
考虑改用服务器端控件之一,例如Repeater 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.