2011-12-05 4 views
0

У меня есть текстовое поле, называемое txtNote. Когда я ввожу какой-то текст, я нажимаю кнопку сохранения, а содержимое записывается в базу данных. Теперь я хочу очистить значение текстового поля, поэтому я использовал txtNote.text = "", но он больше не работает, поскольку кнопка сохранения теперь является частью триггера панели обновления.не удалось очистить textbox.text

E.g.

   <asp:TextBox ID="txtNote" runat="server" CssClass="textarea full" Rows="4" TextMode="MultiLine"></asp:TextBox> 

        <asp:Button ValidationGroup="valgroup1" ID="btnNoteSave" runat="server" Text="Save"/> 
       </div> 
      </div> 
      <div style="width: 100%; float: left"> 
       <asp:UpdatePanel ID="pnlNotes" runat="server"> 
        <ContentTemplate> 
         <div id="content_container" style="margin-top: 85px"> 
          <asp:Label ID="lblNotes" runat="server"></asp:Label> 
         </div> 
        </ContentTemplate> 
        <Triggers> 
         <asp:AsyncPostBackTrigger ControlID="btnNoteSave" EventName="click" /> 
        </Triggers> 
       </asp:UpdatePanel> 
      </div> 

код позади:

Protected Sub btnNoteSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnNoteSave.Click 
    If txtNote.Text <> "" Then 
     Dim newnote As New note() 
     newnote.LoggedBy = Session("user_id") 
     newnote.Note = txtNote.Text 
     newnote.Create() 
     txtNote.Text = "" 'this is not working. 
     Dim note As New note() 
     lblNotes.Text = note.shownotes(Val(txtTicketID.Value)) 

    End If 

End Sub 

Я предполагаю, что это не работает, как это не в состоянии сделать надлежащий постбэк как обновление панель участвуют.

Любые идеи, как обойти эту, вероятно, простую проблему?

Спасибо,

ответ

0

Просто Оберните TextBox в своей собственной UpdatePanel. Убедитесь в том, чтобы либо установить UpdateMode в Always, или добавить Button к Triggers нового UpdatePanel

+0

Это может сработать, но я бы не рекомендовал добавлять дополнительную панель обновления, чем вам нужно. Ваша страница может стать действительно раздутой очень быстро. – TheGeekYouNeed

+0

Верно, но если вам нужно обновить элемент управления, а не в вашей «UpdatePanel», то вы это сделаете. В конце концов, это то, о чем он просил. – drdwilcox

+0

nice one;) .... – thegunner

0

Изменить:

<Triggers> 
         <asp:AsyncPostBackTrigger ControlID="btnNoteSave" EventName="click" /> 
        </Triggers> 

To:

<Triggers> 
         <asp:PostBackTrigger ControlID="btnNoteSave" /> 
        </Triggers> 

EDIT: Просто заметил, что кнопка находится за пределами панели обновления. Не уверен на 100%, если мое предложение будет работать.

+0

Даже если бы это было так, это просто заставило бы всю страницу отправить назад, что почти наверняка не то, что он хочет. – drdwilcox

+0

спасибо, но да, действительно, не хочу, чтобы вся страница была отправлена ​​назад или пыталась избежать этого, если это возможно. – thegunner

+0

@drdwilcox Я думал, что ему нужно будет отправить назад, чтобы ударить по коду и очистить текст TextBox. – Seany84

Смежные вопросы