0

jQueryを使用してajaxリクエストをトリガーするこのtextBoxがあります:

<asp:TextBox ID="postcodeTextBox" runat="server" Text='<%# Bind("POSTAL_ZIP_CODE") %>'>

$(document).ready(PageLoad);

function PageLoad() {
    $(container + 'parentProjectTextBox').change(GetProjectName);
}

function GetProjectName() {
    var projectNumber = $(this).val();
    if (projectNumber == '') return;
    $(container + 'parentProjectPanel').block({ message: '<img src="../Resources/RadControls/Ajax/Skins/Default/loading7.gif" />' });
    $.ajax({
        type: 'POST',
        url: projectMasterWebServicesUrl + 'GetProjectName',
        data: "{'projectNumber':'" + projectNumber + "'}",
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        success: GetProjectNameOnSuccess,
        error: GetProjectNameOnError
    });
}

この ajax リクエストは、このドロップダウンに入力するリストを取得します。

                        <asp:DropDownList ID="cityDropDownList" runat="server" OnDataBound="cityDropDownList_DataBound">
                            <asp:ListItem Text="...Select..." Value="0">
                            </asp:ListItem>
                        </asp:DropDownList>

すべて正常に動作します。私が抱えている唯一の問題は、フォームビューの期間を更新してそのレコードを保存すると、そのドロップダウンに設定された値が表示されないことです。クライアント側でこのドロップダウンにデータを入力していると、ASP.NET がそれを追跡できなくなると思います ....

誰にも洞察がありますか?

そのページの EnableEventValidation プロパティのオン/オフを切り替えると、正しい値が得られることがあるようです.....

ありがとう !

4

2 に答える 2

1

その値を格納する隠しフィールドを作成する必要があります。Javascript でその HiddenField を更新し、サーバー側で読み取ります。また、EventValidation=true があり、ドロップダウン リストの項目を変更すると、よく知られた例外が発生します。

于 2008-12-18T03:02:04.220 に答える
0

これは問題ではないかもしれません...しかし、Page_Load で Page.IsPostBack をチェックしていますか?

私は何度もその間違いを犯しました。

そのドロップ ダウン コントロールを Page_Load からロードしていて、(!Page.IsPostback) かどうかをチェックしていない場合は、コントロールをリロードします。次に、ドロップダウンから値を取得すると...ドロップダウンをリロードしたため、値がなくなります。

于 2008-12-18T04:12:12.797 に答える