【问题标题】:How to dynamically create a text box with runat=server in jquery如何在 jquery 中动态创建带有 runat=server 的文本框
【发布时间】:2017-07-11 11:25:50
【问题描述】:

我正在尝试动态创建一个文本框。我可以通过以下代码成功创建它:

var parentTable = $('<table border="0" class="table table-bordered" width="100%" id="searchInformation"/>');
var tr = $("<tr class='searchEntitydata'/>");
var tr2 = $("<tr class='searchEntitydata1'/>");

tr.append("<td id='HQNametd'>  <label ID='hqName'>HQ Name</label>  <input type='textBox' id='textboxSearch' placeholder='Search HeadQuarter'> </td>");
tr.append("<td id='HQIDtd'>  <label ID='hqId'>HQ ID</label>  <input type='textBox' id='textboxSearchHQId' placeholder='Search ID'> </td>");
tr.append("<td id='BranchNametd'>  <label ID='BranchName'>Branch Name</label>  <input type='textBox' id='textboxSearchBranchName' placeholder='Search Branch Name'> </td>");
tr.append("<td id='BranchIdtd'>  <label ID='BranchId'>Branch Id</label>  <input type='textBox' id='textboxSearchBranchId' placeholder='Search Branch ID'> </td>");

tr2.append("<td id='Citytd'>  <label ID='City'>City</label>  <input type='textBox' id='textboxSearchBranchId' placeholder='Search Branch ID'> </td>");
tr2.append("<td id='Statetd'>  <label ID='State'>State</label>  <input type='textBox' id='textboxSearchBranchId' placeholder='Search Branch ID'> </td>");

parentTable.append(tr);
parentTable.append(tr2);
$('#confirmSearch').append(parentTable);

但是,当我从 input type=textBox 更改文本框类型时 到asp:TextBox 使用runat='server',我得到一个错误。

有什么方法可以动态创建带有runat=server 的文本框?

【问题讨论】:

  • 你需要在客户端做吗?服务端解决方案好吗?
  • @VladStryapko:不只是好的,而且可能是必要的。
  • 你不能在客户端这样做,只能在服务器端进行
  • “runat=server”中的“server”就是:服务器端。您的 jQuery 代码在客户端运行。您不能创建服务器端控制客户端。您可以创建一个文本框,并将其内容发送到服务器,但它不会是服务器控件。
  • 我想将文本框的内容发送到我的代码隐藏文件。但我做不到。

标签: c# jquery asp.net webforms


【解决方案1】:

NO 您不能从 jQuery 或任何客户端脚本添加 asp-runat="server" 标记。而是使用以下从服务器端动态生成文本框,将您的代码封装在 ajax 控件工具包更新面板中。

C#:(点击或页面加载或任何服务器端事件)

TextBox tbOne = new TextBox();
Label lblOne = new Label();
lblOne.ID = "lblId";
lblOne.Text = "My label";
lblOne.Width = 200;

tbOne.ID = "tbId";
tbOne.Text = "xyz";
pnl.Controls.Add(lblOne);
pnl.Controls.Add(tbOne);

ASPX:

<asp:Panel ID="pnl"Width="100%" runat="server">
    </asp:Panel>

【讨论】:

    猜你喜欢
    • 2011-05-20
    • 2012-03-10
    • 1970-01-01
    • 2013-04-09
    • 1970-01-01
    • 2019-02-22
    • 2014-01-21
    • 2015-02-21
    • 2018-07-28
    相关资源
    最近更新 更多