
C# codeprivate void LoadProperty(int cateId)
{
HtmlGenericControl span = new HtmlGenericControl()
for (int i = 0i <ds.Tables[0].Rows.Counti++)
{
StringBuilder strHtml = new StringBuilder()
if (i % 2 == 0)
{
strHtml.Append("<div >")
strHtml.Append("<div class=\"layout1\">")
}
else
{
strHtml.Append("<div >")
}
TextBox txt = new TextBox()
Label lbl = new Label()
HiddenField hdf = new HiddenField()//
lbl.ID = "lblProp" + i.ToString()
lbl.Text = ds.Tables[0].Rows[i]["PropName"].ToString() + ":"
txt.ID = "txtProp" + i.ToString()
hdf.ID = "hdfProp" + i.ToString()//
lbl.EnableViewState = true
txt.EnableViewState = true
hdf.EnableViewState = true//
LiteralControl lc = new LiteralControl(strHtml.ToString())
lc.EnableViewState = true
span.Controls.Add(lc)
span.Controls.Add(lbl)
span.Controls.Add(txt)
span.Controls.Add(hdf)//
if (i % 2 == 0)
{
span.Controls.Add(new LiteralControl("</div></div>"))
}
else
{
span.Controls.Add(new LiteralControl("</div>"))
}
}
}
动态生成的控件,当点击页面按钮时会刷新页面,所以,生成控件的方法不需要
if(!IsPostBack)
{
}
------解决方案--------------------
JScript code$(function(){
$("#addLabel").click(function(){
$("#divAddLabel").append("<label>添加的label<label/><br />")
})
})
实现这个功能的方法很多,如果用javascript的话,可以这样:在页面的<asp:panel></asp:panel>这个标签里添加一个<Div></Div>,div中将label控件包含进去;在Button1的客户端的click中写个函数,复制页面元素,主要是应用javascript的cloneNode方法,可以查找网上资料,这个方法不需要刷新页面,速度快。
方法二:
你这样做未必就没有添加label,你可以在点击一次按钮后,在页面上看它的html代码,调试一下错误所在,看页面上是否会有两个label标签。
代码如下,只是示例:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default6.aspx.cs" Inherits="Default6" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<script type="text/javascript">
function insertMessage() {
if(document.getElementsByTagName("tbody").length<16) {
var oNewNode = document.getElementById("ass").firstChild.cloneNode(true)
document.getElementById("ass").appendChild(oNewNode)
} else {
alert("最多只能同时上传10个附件!")
return false
}
}
function moveMessage() {
if(document.getElementsByTagName("tbody").length>3){
var oOldNode = document.getElementById("ass").lastChild
oOldNode.parentNode.removeChild(oOldNode)
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<table><tr><td>
上传附件:<a href="###" onclick="insertMessage()">[+]</a><a href="###" onclick="moveMessage()">
[-]</a>
<table id="ass">
<tr>
<td style="height: 22px">
附件:<asp:FileUpload unselectable="on" ID="filePost" runat="server" /></td>
</tr>
</table></td></tr>
</table>
</div>
</form>
</body>
</html>
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)