문제

jQuery를 사용하여 Ajax 요청을 트리거하는이 텍스트 상자가 있습니다.

<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>

모든 것이 잘 작동합니다. 내가 가진 유일한 문제는 FormView Priod를 해당 레코드를 저장하도록 업데이트 할 때 해당 드롭 다운으로 설정된 값을 볼 수 없다는 것입니다. 클라이언트 측 에서이 드롭 다운을 채우면서 ASP.NET가 그 추적을 잃어 버립니다 ....

누구든지 통찰력이 있습니까?

분명히 해당 페이지의 enableEventValidation 속성을 켜거나 끄면 때때로 올바른 값을 얻습니다 .....

감사 !

도움이 되었습니까?

해결책

그 가치가 숨겨진 필드 스토어를 만들어야합니다. JavaScript에서 Hiddenfield를 업데이트 한 다음 서버 측에서 읽으십시오. 또한 eventValidation = true가 있고 드롭 다운 목록에서 항목을 변경하면 잘 알려진 예외가 나타납니다.

다른 팁

이것은 문제가되지 않을 수 있습니다 ... 그러나 page.ispostback에서 page.ispostback을 확인하고 있습니까?

나는 그 실수를 너무 많이했다.

Page_load에서 해당 드롭 다운 컨트롤을로드하고있는 경우 (! page.ispostback) 컨트롤을 다시로드 할 것입니다. 그런 다음 드롭 다운에서 값을 얻을 때 ... 드롭 다운을 다시로드하여 값이 사라졌습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top