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

天殇月痕 2013-07-03 09:16:39
 <%  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>
<% }}%>

这样子会报错,可是就像达到这样的效果,有没有人做过类似的
...全文
331 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
零点逸族 2013-07-03
  • 打赏
  • 举报
回复
从我个人的经验来讲,动态创建服务器控件很少用到,而且相对来说会比较麻烦,大部分都是创建客户端的html代码,然后用js去操作比较多。
零点逸族 2013-07-03
  • 打赏
  • 举报
回复
引用 5 楼 yumenjianke 的回复:
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);
零点逸族 2013-07-03
  • 打赏
  • 举报
回复
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;
		}
	}
}
应该只能这样了。
  • 打赏
  • 举报
回复
引用 楼主 whw6263989 的回复:
 <%  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>
               <% }}%>
这样子会报错,可是就像达到这样的效果,有没有人做过类似的
或者你把i.ToString()后面的分号去了 试试看
天殇月痕 2013-07-03
  • 打赏
  • 举报
回复
引用 1 楼 newegg2009 的回复:
你说具体的逻辑需求吧(为什么要这么设计?),看看大家有没有更好的解决方案。
就是想根据一个后台的变量是否有值(这个值是一个整数,代表有几个步骤) 然后根据这个变量进行循环来添加控件,每个控件对应一个步骤,这个时候ID不能用循环的变量i
  • 打赏
  • 举报
回复
引用 楼主 whw6263989 的回复:
 <%  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>
               <% }}%>
这样子会报错,可是就像达到这样的效果,有没有人做过类似的
这样子试一试ID='"DepartmentSelect"+<% =i.ToString() %>'
  • 打赏
  • 举报
回复
你说具体的逻辑需求吧(为什么要这么设计?),看看大家有没有更好的解决方案。
tcmakebest 2013-07-03
  • 打赏
  • 举报
回复
ID就交给系统处理吧,何不用name?
kiss筱魔 2013-07-03
  • 打赏
  • 举报
回复
<div id="test_<%=i++ %>"></div>
uinatlex 2013-07-03
  • 打赏
  • 举报
回复
那你只能动态创建这个控件来完成注册
-Arvin 2013-07-03
  • 打赏
  • 举报
回复
可以把前台的控件,在后台通过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

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧