ASP.NET/VB.NET: DROPDOWNLIST SelectedIndexChanged ня страляючы з OnChange = "JavaScript: вяртае ісціну;"

У мяне ёсць наступны код:


    1
    2


    3
    4

Правадныя да гэтага:

Protected Sub changed1(sender As Object, e As EventArgs) Handles dd1.SelectedIndexChanged

End Sub

Protected Sub changed2(sender As Object, e As EventArgs) Handles dd2.SelectedIndexChanged

End Sub

Калі індэкс DD2 зменены, вы чакалі б яго апрацоўшчык страляць, ці не так? Ну, гэта не так. Замест гэтага, ён атрымлівае "у чарзе» і спрацоўвае пасля таго, як апрацоўшчык пажараў DD1, калі індэкс змяняецца. Калі ўзяць OnChange = «JavaScript: вяртае ісціну;" ад DD2, ён страляе проста выдатна.

Хто-небудзь ёсць якія-небудзь ідэі, што тут адбываецца?

Edit: Мой першы адказ быў бы, што з дапамогай зваротных выразаў на DropDownList не працуе так жа, як падзеі націску адной кнопкі, але я клянуся, што я зрабіў гэта з DropDownLists раней.

Update: I am able to force the server event to fire by doing this in Javascript:

__doPostBack("<%=dd2.ClientID %>", '');

Я не разумею, чаму я павінен гэта зрабіць, але гэта працуе. Тым не менш, я ўсё яшчэ хачу зрабіць гэта па-іншаму, так што калі хтосьці ведае, калі ласка, дайце мне ведаць, так што я магу адзначыць вас, як адказ.

3

5 адказы

Вам не трэба, што на ўсіх. Проста ўсталюеце AutoPostBack праўдзіва, і калі вам трэба, каб пазбегнуць набору праверкі CausesValidation ў хлусьню.


4
дададзена
Я выкарыстоўваю праверку?
дададзена аўтар oscilatingcretin, крыніца
Мой прыклад паказвае, што ў мяне ўжо ёсць AutoPostBack = "ісціна". Я таксама нічога не робіць, з праверкай на ўсіх. Я проста не хачу, каб на боку сервера падзея спрацоўваць у залежнасці ад таго, ці не вяртаць мяне сапраўдным або ілжывым.
дададзена аўтар oscilatingcretin, крыніца
<�Код> AutoPostBack = «праўдзівы» дапамог мне вырашыць гэтую праблему на маім канцы.
дададзена аўтар AceMark, крыніца
Вы пытаеце мяне, калі вы карыстаецеся праверкі? Калі ў вас ёсць валідатары на старонцы, але вы не хочаце, каб DropDownList для запуску праверкі, усталюйце CausesValidation хлусня. У адваротным выпадку, проста ўсталюйце AutoPostBack праўдзіва, і ўсё добра.
дададзена аўтар James Johnson, крыніца
Можа быць, я заблытаўся ... што вы спрабуеце зрабіць, і ў чым праблема?
дададзена аўтар James Johnson, крыніца

Па нейкай прычыне, я думаў, што вы маглі б адмяніць падзея сервера расчыняецца шляхам вяртання ілжыва на OnChange падзеі на баку кліента, як вы маглі б з OnClick выпадку кнопкай (напрыклад, OnClick = "JavaScript: вяртанне ілжывым;" ) ,

Тое, што я ў канчатковым выніку робіць гэта праверка стану ў функцыі. Калі гэта праўда, то спрацоўвае гэта:

__doPostBack("<%=dd2.ClientID %>", '');

У адваротным выпадку, гэта не так.

2
дададзена

                            

Дадаць AutoPostBack = "праўдзівы зрабіў трук для мяне.

1
дададзена

__doPostBack("<%=dd2.ClientID %>", '');

гэта працуе для мяне ...

гэта было маё падзенне ўніз .........

вось мая функцыя JQuery

Функцыя CheckDate() {

    var date = document.getElementById('<%= ucDateTimeStart.FindControl("txtDateTime").ClientID %>').value;
    if (date == '') {
        alert("Please select a valid date.");
        return false;

    }
    else {
        __doPostBack("<%=ddlbranchname.ClientID %>", '');
        return true;
    }


    return true;

}
0
дададзена
this is my drop down..
 
                
0
дададзена