【问题标题】:Can't get asp.net textfield from codebehind无法从代码隐藏中获取 asp.net 文本字段
【发布时间】:2016-05-09 13:31:26
【问题描述】:

我在 aspx 页面中有一个小表单。此表单在 jQuery 对话框中呈现。我在此对话框中放置了两个按钮(jQuery 按钮)。由于这些不是 aspx 按钮,当按下 jQuery 对话框按钮时,我必须手动执行回发,如下所示:

对话框:

jQuery(function () {
    var dlg = $('#dialog_renombrar').dialog({
        autoOpen: false,
        resizable: false,
        modal: true,
        width: 360,
        buttons: {
            "Aceptar": function () {
                __doPostBack('rnmbrFchr', null);
            },
            "Cancelar": function () {
                $(this).dialog("close");
            }
        }
    });

形式:

<div
    align="center"
    id="dialog_renombrar"
    style="padding: 10px 10px 10px 10px;
        margin: 10px 10px 10px 10px; 
        width:100%;
        height:100%;
        display:none; 
        overflow:auto">
    <table 
        cellspacing="2" 
        width="100%" 
        align="center">
        <tr>
            <td>
                Documento:
            </td>
            <td>
                <asp:TextBox 
                    ID="nombre_antiguo" 
                    Enabled="false"
                    style="width:100%;"
                    runat="server"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td>
                Nuevo nombre:
            </td>
            <td>
                <cc1:SWCTextBox 
                    ID="SWCTextBox3"
                    MarcarObligatorio="true"
                    style="width:100%; height:90%" 
                    runat="server"></cc1:SWCTextBox>
                    <asp:HiddenField runat="server" ID="itemkey" />
            </td>
        </tr>

    </table>
</div>

然后在执行回发时的代码隐藏中,我无法访问文本字段。做不到:

Request.Forms["SWCTextField3"]

值和即时对象都不可见。

我需要帮助。谢谢。

【问题讨论】:

  • 如果您已经在使用 jQuery,为什么不直接通过 AJAX 发布帖子。将数据发布到页面方法。
  • @Akram 你可能想改写你的评论,它的表达相当严厉。
  • 我愿意,但我必须回发。
  • @antoni:请您尝试接受一些关于您的问题的答案。这样你就可以奖励那些努力帮助你的人。
  • 目前我还不是注册用户,我不能。我马上就要注册了。

标签: jquery asp.net code-behind


【解决方案1】:

通过查看提供的页面源来检查文本框的实际 ID。默认情况下,ASP.NET 将修改页面上的 ID 以确保它们保持唯一性。如果您使用的是 .NET 4,则可以通过设置页面指令 ClientIDMode="Static" 来覆盖此行为。

【讨论】:

  • 我认为提交数据有问题。
【解决方案2】:

如果回发是必须的,也许您可​​以将文本框内容附加为 URL 的查询字符串参数?

【讨论】:

  • 这是一个处理字符串的解决方案。但之后我必须做同样的事情,但上传二进制文件而不是字符串。
猜你喜欢
  • 2014-04-10
  • 2013-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-21
相关资源
最近更新 更多