Добавить / удалить элементы из одного элемента управления ListBox в другой элемент управления ListBox в ASP.NET со стороны клиента - PullRequest
1 голос
/ 10 октября 2010

Я перемещаю элементы из одного элемента управления ASP.NET ListBox в другой элемент управления ListBox со стороны клиента.Это работает на стороне клиента, но когда я пытался подсчитать элементы в целевом ListBox на стороне сервера, это всегда ничего.Ниже приведен код jQuery, используемый для добавления / удаления элементов из элемента управления ListBox.

<script type="text/javascript">
    $(document).ready(function(addToList) {
    // to move selected item from lbSource to lbDestination
    $("#add").click(function() {
    $("#lbSource  option:selected").appendTo("#lbDestination").attr("selected", false);
    });

    // to remove selected item from lbDestination to lbSource
    $("#remove").click(function() {
    $("#lbDestinaion option:selected").appendTo("#lbSource").attr("selected", false);
    });
});
</script>

Я знаю, что мы можем добавлять / удалять элементы из ListBox со стороны сервера.Но я бы хотел сделать это со стороны клиента.

Почему в ListBox назначения нет ничего при подсчете элементов из кода, даже если элементы уже добавлены со стороны клиента.

Ответы [ 3 ]

0 голосов
/ 11 октября 2010

Даже если он отображается на стороне клиента, он не передается на сервер, значения не обновляются на сервере. Выполняете ли вы какие-либо действия по обновлению списка, например, выполняете обновление db sql ??

Если вы хотите сделать это без отправки страницы, используйте Ajax.

0 голосов
/ 02 февраля 2011

Боюсь, вам понадобится панель обновлений, чтобы сервер мог отслеживать изменения состояния элементов управления.

Сервер:

protected void btnMove_OnClick(object sender, EventArgs Args)
{
    ListItem SourceItem = bSource.SelectedItem;

    lbDestination.Items.Add(SourceItem );
    lbSource.Items.Remove(SourceItem);
}

Наценка:

<asp:UpdatePanel ChildrenAsTriggers="true" runat="Server">
    <ContentTemplate>

    <asp:ListBox ID="lbSource" runat="server"/>
    <asp:Button ID="btnMove" OnClick="btnMove_OnClick" runat="server"/>
    <asp:ListBox ID="lbDestination" runat="server"/>

    </ContentTemplate>
</asp:UpdatePanel>
0 голосов
/ 10 октября 2010

Изменения Javascript, сделанные на элементах управления, не будут отображаться на стороне сервера.Я думаю, что это связано с жизненным циклом asp.net.Однако это показано в скрытых полях.Таким образом, вы можете отслеживать это на стороне сервера, если добавите информацию в дополнительные скрытые поля, например, вы можете сохранить идентификаторы или имена параметров в скрытых полях.

...