如何在 asp.net 后台代码中为前台页面动态增加服务器控件?
开发想法:想做一个产品系统,不同分类的产品有不同的属性,所以在增加产品的时候,因为选择分类的不同,功能上需要根据分类动态的出来不同的属性控件框,以供填写具体的产品属性值。...
开发想法:
想做一个产品系统,不同分类的产品有不同的属性,所以在增加产品的时候,因为选择分类的不同,功能上需要根据分类动态的出来不同的属性控件框,以供填写具体的产品属性值。
注:不同分类的属性被我存在了另一个数据库表中。
难点:我不知道如何通过分类的ID值在后台代码中动态生成前台代码!我的前台代码是有格式要求的,如:
<p>
<label>属性1:</label>
<asp:Textbox runat="server" ID="Param1"></asp:Textbox>
</p>
望高手赐教,诚挚感谢! 展开
想做一个产品系统,不同分类的产品有不同的属性,所以在增加产品的时候,因为选择分类的不同,功能上需要根据分类动态的出来不同的属性控件框,以供填写具体的产品属性值。
注:不同分类的属性被我存在了另一个数据库表中。
难点:我不知道如何通过分类的ID值在后台代码中动态生成前台代码!我的前台代码是有格式要求的,如:
<p>
<label>属性1:</label>
<asp:Textbox runat="server" ID="Param1"></asp:Textbox>
</p>
望高手赐教,诚挚感谢! 展开
3个回答
展开全部
增加产品,不同分类的产品,出现不同的产品属性框,应该还是可添加和删除产品属性框的。
实现方法有两种:
1、多放几个Label和Textbox,根据数据库中的产品属性多少,隐藏掉不需要的Label和Textbox,对需要的Label和Textbox的属性进行赋值在后台代码中也很容易实现。
2、先放一个Panel,比如Panel9,然后用 Label labeln = new Label(); Textbox textboxn=new Textbox();来创建新控件,用对labeln.ID、labeln.Text、textboxn.ID、textboxn.Text的赋值语句来放上产品的属性,最后用Panel9.Controls.Add(labeln);Panel9.Controls.Add(textboxn);来往页面上动态增加刚才新建的服务器控件。
实现方法有两种:
1、多放几个Label和Textbox,根据数据库中的产品属性多少,隐藏掉不需要的Label和Textbox,对需要的Label和Textbox的属性进行赋值在后台代码中也很容易实现。
2、先放一个Panel,比如Panel9,然后用 Label labeln = new Label(); Textbox textboxn=new Textbox();来创建新控件,用对labeln.ID、labeln.Text、textboxn.ID、textboxn.Text的赋值语句来放上产品的属性,最后用Panel9.Controls.Add(labeln);Panel9.Controls.Add(textboxn);来往页面上动态增加刚才新建的服务器控件。
更多追问追答
追问
非常感谢,说的非常详细,我想再追问一下:
因为为了格式上的需要,我需要生成这样这样的代码
属性1:
那这个P的标签用第2种方法的话,如何生成出来呢?或者说如何赋给Panel控件呢?还有就是如何生成Label在P标签内?
如果可以的话,希望能够交个朋友,我的邮箱:green120@163.com
追答
要精确控制生成的客户端HTML代码,可以使用Response.Write("...");
朋友,欢迎!
展开全部
StringBuilder sb = new StringBuilder(); 输出吧。
sb.Append("<ul>");
sb.AppendLine();
for (int i = 0; i < dt.Rows.Count; i++)
{
sb.Append("<li style=\"line-height:26px;background:url('/image/news/dian2.jpg') no-repeat 14px 11px;padding-left:22px;height:26px;white-space: nowrap;text-overflow: ellipsis;overflow:hidden;text-align:left\">");
sb.Append("<a href=\"" + dt.Rows[i]["newsPath"].ToString() + "\" target=\"_blank\">");
sb.Append(dt.Rows[i]["title"].ToString());
sb.Append("</a>");
sb.Append("</li>");
sb.AppendLine();
}
sb.Append("</ul>");
context.Response.Write(sb.ToString());
用ajax吧 返回StringBuilder 然后前台给个div填充html就好了吧
sb.Append("<ul>");
sb.AppendLine();
for (int i = 0; i < dt.Rows.Count; i++)
{
sb.Append("<li style=\"line-height:26px;background:url('/image/news/dian2.jpg') no-repeat 14px 11px;padding-left:22px;height:26px;white-space: nowrap;text-overflow: ellipsis;overflow:hidden;text-align:left\">");
sb.Append("<a href=\"" + dt.Rows[i]["newsPath"].ToString() + "\" target=\"_blank\">");
sb.Append(dt.Rows[i]["title"].ToString());
sb.Append("</a>");
sb.Append("</li>");
sb.AppendLine();
}
sb.Append("</ul>");
context.Response.Write(sb.ToString());
用ajax吧 返回StringBuilder 然后前台给个div填充html就好了吧
追问
我是初学,虽然能够似乎看明白,但不会用,可否方便留个联系方式给我,我直接联系,拜托。如果不方便留联系方式,你可以发消息到我邮箱,这样我联系你。green120@163.com
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上的已经说的很详细了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询