【问题标题】:ASP.net Web Forms - Dynamic Form - C#ASP.net Web 表单 - 动态表单 - C#
【发布时间】:2023-03-02 22:41:01
【问题描述】:

我需要使用 QueryString 参数动态创建表单并访问 在后面的代码中按 ID 到其所有字段。

现在,我有了表单(带有服务器控件),但我无法设置唯一 ID(使用 Eval 之类的东西...) 所以我从服务器控件传递到简单的 html,现在所有字段都有唯一的 ID 但我无法从后面的代码访问它们(Form.FindControl 仅适用于服务器控件)。

这是我的 html 代码:

<%
    int j = Convert.ToInt32(Request.QueryString["j"]);

    for (int i = 0; i < j; i++)
    {
    %>
    <div>
        <div>
            <input type="date" id='<%: "date_" + (i + 1).ToString() %>' />
        </div>
    </div>

    <%
    }
    %>

如果真的不可能为服务器控件设置 ID(如果没有,请告诉我怎么做!) 我怎样才能访问这些字段?或者我如何使用其他东西创建表单 对我有帮助吗?

感谢您的建议。

【问题讨论】:

    标签: c# asp.net forms dynamic webforms


    【解决方案1】:

    由于这些控件将在表单提交时回发,并且您需要在postback 之后获取这些值,因此您可以使用Request.Form["date_0"]Request.Form["date_1"]Request.Form["date_2"] ....

    【讨论】:

    • 谢谢,这行得通!但就像@yogi970 所说,我必须添加 name 属性。我必须使用该字段进行数据库插入,我可以在 PageLoadisPostBack 中执行此操作还是有更好的方法?
    【解决方案2】:

    只需在输入类型中添加额外的属性name。喜欢

     <input type="date" name="myDate"/>
    

    现在您可以从服务器端获取表单中的值。

      string date=  Request.form["mydate"];
    

     string date=  Request.form[mydate.UniqueID];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-24
      • 1970-01-01
      • 2018-02-02
      • 2013-06-18
      • 1970-01-01
      • 1970-01-01
      • 2011-10-25
      • 1970-01-01
      相关资源
      最近更新 更多