У меня есть раскрывающийся список ASP.Net. Когда выбрано определенное значение, я хочу, чтобы отображались некоторые разрывы строк. Я делаю это с помощью jQuery, потому что не знаю, как выбрать разрыв строки с помощью ASP.Net. Дело в том, что у меня также есть UpdatePanel, который запускается с тем же раскрывающимся списком. Могут ли они работать вместе?

ASP.Net:

                    <asp:DropDownList ID="ddlHowMany" runat="server"  
                        onselectedindexchanged="ddlHowMany_SelectedIndexChanged" 
                        style="margin-left: 8px" Width="50px" AutoPostBack="True" Height="22px">
                    </asp:DropDownList>
                    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                    <ContentTemplate>
                        <br class="space" />
                        <br class="space" />
                        <asp:TextBox ID="txtGraphic1Desc" class="descriptions" runat="server" Height="92px" 
                            TextMode="MultiLine"
                            Width="260px" Font-Names="Trebuchet MS" Visible="False">Description of graphic #1</asp:TextBox>
                        <br class="space" />
                        <br class="space" />
                        <asp:TextBox ID="txtGraphic2Desc" class="descriptions" runat="server" Height="92px" 
                            TextMode="MultiLine"
                            Width="260px" Font-Names="Trebuchet MS" Visible="False">Description of graphic #2</asp:TextBox>
                        <br class="space" />
                        <br class="space" />
                        <asp:TextBox ID="txtGraphic3Desc" class="descriptions" runat="server" Height="92px" 
                            TextMode="MultiLine"
                            Width="260px" Font-Names="Trebuchet MS" Visible="False">Description of graphic #3</asp:TextBox>
                    </ContentTemplate>
                    <Triggers>
                        <asp:AsyncPostBackTrigger ControlID="ddlHowMany" />
                    </Triggers>
                </asp:UpdatePanel>

JQuery:

        $.ajax({
            url: "Default.aspx",
            type: 'POST',
            complete: function () {
                if ($('#<%=ddlHowMany.ClientID %> option:selected').val() != "0") {
                    $('br.space').css({ display: 'block' });
                }
                else {
                    $('br.space').css({ display: 'none' });
                }
            }
        })
0
Monica 14 Мар 2013 в 21:18
Вы ищете событие, которое запускалось бы каждый раз, когда в списке выбора выбирается какой-либо параметр?
 – 
tymeJV
14 Мар 2013 в 21:22
Нет. Для ASP.Net некоторые текстовые поля должны отображаться. Между ними есть разрывы строк, но я не могу получить к ним доступ с помощью ASP.Net. Это вообще возможно?
 – 
Monica
14 Мар 2013 в 21:26
Перерывы динамичны? не могли бы вы запустить их на сервере?
 – 
Pow-Ian
15 Мар 2013 в 00:32
Зачем вам именно разрывы строк? Вы пытаетесь разместить текстовые поля? CSS - НАМНОГО лучший вариант для этого, и вам не придется сражаться в этой битве. Либо назначьте CssClass (используйте это свойство вместо класса) и назначьте ему маржу, либо оберните каждое текстовое поле в div, который правильно отводит или дополняет визуальный стиль, который вы ищете.
 – 
Chris Porter
15 Мар 2013 в 09:46

1 ответ

Лучший ответ

Вам нужно добавить свой код с помощью ScriptManager.RegisterStartupScript() вместо выполнения POST с помощью jQuery. Пусть UpdatePanel выполнит работу с AJAX и после этого вызовет jQuery.

Также обратите внимание, что вы не можете выполнить AJAX POST в ASP.NET WebForms с таким jQuery. Вы должны вызвать метод __doPostBack() или вызвать $(document.forms[0]).submit(), чтобы внутреннее содержимое ASP.NET могло творить чудеса.

0
Knaģis 14 Мар 2013 в 21:24
Если я сделаю это другими методами, мне нужно будет использовать RegisterStartUpScript () или это только в первый раз?
 – 
Monica
14 Мар 2013 в 21:35
RegisterStartupScript используется, когда вы хотите, чтобы что-то было выполнено после выполнения обратной передачи, и страница отправлена ​​обратно клиенту (либо в самый первый раз, либо после обратной передачи с использованием ajax или не ajax).
 – 
Knaģis
14 Мар 2013 в 22:17