【问题标题】:reading form value of a control (TextBox) in ASP.Net在 ASP.Net 中读取控件(文本框)的表单值
【发布时间】:2011-10-20 11:00:29
【问题描述】:

我想读取控件(例如 TextBox)的 Form 值,即 'Request.Form["[Control_Name_Here]"]。使用say TextBox.Text 的问题在于,如果您在Page_Load 中明确设置了它,您将无法取回表单中提交的“原始值”。

如您所知,Asp.Net 为控件生成一个唯一的 ID/名称。 Request.Form 基于控件的name 属性。每个 web 控件都有一个 ClientID 属性,但是这与名称不匹配。这个名字似乎和 ClientID 差不多,用 $ 而不是 _。有没有一种方法可以轻松地从表单中获取值,而无需将 _ 替换为 $?

这也应该满足其他命名约定,因为从 Asp.Net 中,您还可以选择静态生成控件的 id,而不是动态生成。

【问题讨论】:

    标签: c# asp.net forms httprequest


    【解决方案1】:

    在我看来,您不是在寻找 .ClientID 属性,而是在寻找 Control 的 .UniqueID 属性。

    见:MSDN

    编辑:另外,您总是在页面加载中设置.Text 属性是否有原因?而不是例如检查Page.IsPostBack 属性,并且只设置.Text 如果它是false

    【讨论】:

      【解决方案2】:

      我个人使用jquery查找控件并读取并设置值

      GetFormValue = 函数 (idName) { var srchP = '[id='+idName+']'; var ctrl = $(srchP);

      if (ctrl != null)
          return ctrl.val();
      return null;
      

      } 所以假设服务器部分的 id 名称是 txMytext 它将是 .....$txMytext 在客户端 并通过在客户端调用 GetFormValue('txMytext') 来获取控件的值

      不要忘记使用 jquery 库

      【讨论】:

      • 它是服务器端,而不是客户端。 JQuery 在客户端工作。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-27
      • 1970-01-01
      • 2011-07-14
      相关资源
      最近更新 更多