无法从codebehind获取asp.net文本字段

时间:2011-05-25 14:32:57

标签: jquery asp.net code-behind

我在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"]

值和即时对象都不可见。

我需要帮助。谢谢。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

如果必须使用回发,或许您可以将文本框内容作为URL的查询字符串参数进行处理?