动态Div创建asp.net

时间:2013-03-21 05:29:31

标签: c# javascript asp.net

我想按下按钮点击动态创建Div。

为此我提到了这个链接>> http://forums.asp.net/t/1349244.aspx

并在服务器端(.cs页面)上创建代码,如下所示>>

public static int i = 0;
    protected void Button1_Click(object sender, EventArgs e)
    {
        i++;
        HtmlGenericControl newControl = new HtmlGenericControl("div");

        newControl.ID = "NEWControl"+i;
        newControl.InnerHtml = "This is a dynamically created HTML server control.";

        PlaceHolder1.Controls.Add(newControl);
    }

当我按下按钮时,这段代码每次只给我一个div。我想增加div。

在客户端使用javascript我也试过>>

<body>
    <form id="form1" runat="server">
    <div>

        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" OnClientClick="addDiv();" />

    </div>
    <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
    </form>
</body>
</html>
<script type="text/javascript">
    function addDiv() {
        alert("Control comming in function");
        var r = document.createElement('Div');
        r.style.height = "20px";
        r.style.width = "25px";
        r.appendChild("div");
        alert("Control going out of function");
    }
</script>

这两项都没有用。

我犯了什么错误?

有什么问题吗?

3 个答案:

答案 0 :(得分:2)

使用此

    public int Index
    {
       get
       {
          if(ViewState["Index"]==null)
          {
             ViewState["Index"]=0;
          }
          else
          {
             ViewState["Index"]=int.Parse(ViewState["Index"].ToString())+1;
          }

          return int.Parse(ViewState["Index"].ToString());    
       }
   }

    protected void Button1_Click(object sender, EventArgs e)
    {
        HtmlGenericControl newControl = new HtmlGenericControl("div");
        newControl.ID = "NEWControl"+Index;
        newControl.InnerHtml = "This is a dynamically created HTML server control.";

        PlaceHolder1.Controls.Add(newControl);
    }

答案 1 :(得分:1)

它给你一个div,因为你正在添加一个div 请记住,asp.net需要您在之后的PostBack上创建所有动态添加的控件。

如果你想要两个控件,你必须在PlaceHolder中添加两个。

答案 2 :(得分:0)

只需使用一个带有一些ID的父div(预定义允许说id="dvDynamic")和runat="server"

然后使用dvDynamic.innerHTML = "<div> /* dynamic div contents */ </div>"

它是最简单的方法,就像你在ASP.net中使用html元素一样,使用dom控件来更好地生成。动态创建控件将需要处理,接口和许多事情来协调该控件。由于它不是由系统预定义的。你必须创造它。

选择DOM元素选项。更快更好:)

我希望这会有所帮助:)