Две формы в ASP.NET - PullRequest
       6

Две формы в ASP.NET

0 голосов
/ 25 августа 2010

Вы можете иметь только один form runat="server" на страницу, очевидно.

Моя страница имеет одну форму, где она загружается в список имен. Эта форма также позволяет добавить новое имя в список.

Я связал событие onclick с каждым именем в просмотре списка. Когда вы нажимаете на него, он мне нужен, чтобы загрузить данные в форму редактирования (рядом с формой добавления) с помощью кода JavaScript; Я могу сделать это хорошо.

Но как мне структурировать на странице две формы?

Иллюстрация:

<table>
    <tr>
        <td style="width:50%;" valign="top">

            <form runat="server" action="productCats.aspx?action=new&mid=2">
                <div class="subHead">Create New Category</div>
                <table class="settingTable">
                    <tr>
                        <td colspan="2"><b>Category Name</b></td>
                    </tr>
                    <tr>
                        <td>
                            <asp:TextBox ID="catName" runat="server" CssClass="tbox widebox"></asp:TextBox>
                            <asp:RequiredFieldValidator runat="server"
                                      id="ValidatorName"
                                      ControlToValidate="catName"
                                      ErrorMessage="You need to enter a category name"
                                      display="Dynamic" />
                        </td>
                    </tr>
                    <tr>
                        <td>This is the name of your category.</td>
                    </tr>
                    <tr>
                        <td colspan="2"><b>Parent Category</b></td>
                    </tr>
                    <tr>
                        <td>
                            <asp:ListBox SelectionMode="Single" Rows="8" id="parent" runat="server" CssClass="tbox widebox">
                                <asp:ListItem Selected="True" Text="Top Level" Value="0"></asp:ListItem>
                            </asp:ListBox>
                            <asp:RequiredFieldValidator runat="server"
                                      id="RequiredFieldValidator1"
                                      ControlToValidate="parent"
                                      ErrorMessage="You need to select a parent"
                                      display="Dynamic" />
                        </td>
                    </tr>
                    <tr>
                        <td>Choose a parent this category belongs to.</td>
                    </tr>
                </table>
                <asp:Button id="id" text="Create" runat="server" />
            </form>
        </td>
        <td style="width:4%;">
        </td>
        <td valign="top">
        <div class="subHead">Modify Category</div>

            <form id="Form1" action="productCats.aspx?action=update&mid=2">
                <table class="settingTable">
                    <tr>
                        <td colspan="2"><b>Category Name</b></td>
                    </tr>
                    <tr>
                        <td>
                            <asp:TextBox ID="newCatName" runat="server" Enabled="false" CssClass="tbox widebox"></asp:TextBox>
                            <asp:RequiredFieldValidator runat="server"
                                      id="RequiredFieldValidator2"
                                      ControlToValidate="newCatName"
                                      ErrorMessage="Enter a new category name"
                                      display="Dynamic" />
                        </td>
                    </tr>
                </table>
            </form>
        </td>
    </tr>
</table>

Ответы [ 2 ]

1 голос
/ 25 августа 2010

ASP.NET Веб-формы работает, имея на странице всего один элемент <form> и отправляя его обратно на одну и ту же страницу каждый раз, когда что-то меняется (обратные передачи).Попытка использовать несколько форм и указание пользовательских атрибутов action в элементе формы идет вразрез с тем, для чего предназначен фреймворк, и это не очень хорошая идея.

Я бы просто попытался избавитьсявторого <form> элемента и удалите атрибут action из первого <form>.Кроме того, ASP.NET будет намного счастливее, если все будет внутри формы, то есть ваши теги <table> в верхней части страницы.

Я не уверен, что делает ваша страница, но если выЕсли у вас есть TextBox, и вы используете его содержимое для добавления элементов в ListBox, более похожим на веб-формы подходом будет использование некоторого элемента управления для выполнения обратной передачи после заполнения TextBoxи затем повторно свяжите ListBox с каким-либо источником данных.Возможно, используйте UpdatePanel, если вы хотите обратную передачу Ajax.

Если вам удобнее использовать JavaScript и параметры строки запроса, возможно, ASP.NET MVC подойдет лучше.

0 голосов
/ 08 февраля 2013

Из того, что я понял из вашего объяснения, вам нужна функциональность на этой вашей странице, где при нажатии на один из элементов списка в списке необходимо отображать элементы в форме 2 и изменять детали ... ЧтоЯ думаю ... использовать две панели и щелкнуть по элементу в ListBox, вы можете показать панель редактирования, а при изменении деталей и некоторых других событиях, например, нажатие кнопки ... вы можете показать панель ListBox с измененными деталями.

Да, как упоминал Грэм, для этого можно использовать панель обновления Ajax.

...