Не удается заполнить параметры обновления из ItemTemplate ListView - PullRequest
0 голосов
/ 01 марта 2011

Я использую ListView и хотел бы реализовать переход из режима только для чтения в режим редактирования для элемента ListView на стороне клиента. Часть этого обсуждается в: Редактирование встроенной формы на стороне клиента

Я пытаюсь сделать что-то вроде:

<asp:ListView ID="ListViewContactNumber" runat="server">
    <LayoutTemplate>
        <table cellpadding="0" cellspacing="0">
            <asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder>
        </table>
    </LayoutTemplate>
    <ItemTemplate>
        <div class="readonly">
            <asp:Label ID="LabelType" runat="server" 
                Text='<%# Server.HtmlEncode(Eval("Name").ToString()) %>'></asp:Label>
            <a href="#" onclick="switchState(this,"edit");return false;">Edit</a>
        </div>
        <div class="edit">
            <asp:TextBox ID="TextBoxName" runat="server"
                Text='<%# Eval("Name") %>'
                MaxLength="256"
                Columns="10"></asp:TextBox>
            <asp:LinkButton ID="LinkButtonSave" runat="server"
                Text="Save"
                OnClick="LinkButtonSave_Click"></asp:LinkButton>
            <a href="#" onclick="switchState(this,"readonly");return false;">Cancel</a>
        </div>
    </ItemTemplate>
</asp:ListView>

switchState - это функция Javascript, которая просто скрывает / показывает DIV s с readonly и edit именами классов. В LinkButtonSave_Click я получаю значение из TexBoxName, но оно всегда содержит привязанное исходное значение, а не отредактированное значение, которое было введено в текстовое поле.

  • Разве ASP.NET не отправляет обратно значение текстового поля, потому что оно находится в ItemTemplate или это что-то еще, что вызывает эту проблему?
  • Могу ли я использовать Ретранслятор вместо этого?

Ответы [ 2 ]

1 голос
/ 23 июля 2011

при использовании javascript для изменения состояния вы должны использовать ajax для обновления ваших данных: *

0 голосов
/ 02 марта 2011

Оказалось, что ListView вообще не был источником проблемы. Я повторно привязал данные на Page_Load, не проверяя, был ли это постбэк.

...