繁体   English   中英

在后面的代码中找不到动态html select

[英]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.

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