首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

能不能用后台的变量,用在前台来用作asp.net控件的ID,如何做?

2013-07-16 
能不能用后台的变量,用在前台来用作asp.net控件的ID,怎么做???? %if(checkflow!null){for(int i1i c

能不能用后台的变量,用在前台来用作asp.net控件的ID,怎么做????

 <%  if(checkflow!=null)
                {  for(int i=1;i<= checkflow.FLOW_STEP_COUNT;i++)
                   { %>
                   <tr>
                <td>
                     审批流程步骤<% i.ToString(); %>
                </td>
                <td align="left">
                    <asp:DepartmentSelect ID="DepartmentSelect<% i.ToString(); %>" runat="server" Rows="10" Width="250px"
                        Height="200px" SelectionMode="Multiple">
                        <FirstListBox>
                            <StyleSheet Width="100px" />
                        </FirstListBox>
                        <SecondListBox>
                            <StyleSheet Width="100px" />
                        </SecondListBox>
                    </asp:DepartmentSelect>
                </td>
               </tr>
               <% }}%>


这样子会报错,可是就像达到这样的效果,有没有人做过类似的
[解决办法]
protected int i = 1;

protected void Page_Load(object sender, EventArgs e) {
foreach (var c in Controls) {
if (c is Repeater) {
Repeater lst = (Repeater)c;
lst.ID = "Repeater" + i;
}
}
}


应该只能这样了。
[解决办法]
引用:
protected int i = 1;

protected void Page_Load(object sender, EventArgs e) {
foreach (var c in Controls) {
if (c is Repeater) {
Repeater lst = (Repeater)c;
lst.ID = "Repeater" + i;
}
}
}


应该只能这样了。

不过我不太清楚你为什么要对服务器控件的ID这样处理,这样处理其实就是动态创建服务器控件,用我上面的方式的话,你需要把循环逻辑也移动后台,然后动态增加那些服务器控件。
Repeater rpt = new Repeater();
rpt.ID = "Repeater1";

Page.Controls.Add(rpt);

[解决办法]
从我个人的经验来讲,动态创建服务器控件很少用到,而且相对来说会比较麻烦,大部分都是创建客户端的html代码,然后用js去操作比较多。
[解决办法]
可以把前台的控件,在后台通过HtmlGenericControl画到页面上:
HtmlGenericControl li = new HtmlGenericControl();//HtmlGenericControl可以为任意html控件
                li.InnerHtml = "<A href='Login.aspx'>登录</A><A href='Register.aspx'>注册</A>";//""内是画到前台的元素
                logData.Controls.Add((Control)li);//logData是前台带runat="server"的元素ID

[解决办法]
那你只能动态创建这个控件来完成注册

热点排行
Bad Request.