webform在指定的div中添加动态添加label,该怎么解决

webform在指定的div中添加动态添加label,该怎么解决,第1张

动态生成Asp.Net服务器控件,并取其值

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>


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11493109.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存