2015-03-03 2 views
0

Есть ли способ обновить текстовое поле без использования обратной передачи? Я хотел бы заполнить поле txtDFS значением (100 - txtStocked) после того, как пользователь вводит данные в поле txtStocked.Как обновить текстовое поле без обмена сообщениями?

Следующий код работает, но использует postback, чтобы страница обновилась. Есть ли способ сделать это без обновления страницы?

<asp:TextBox ID="txtStocked" runat="server" Width="75px" AutoPostBack="true" OnTextChanged="txtStocked_TextChanged"></asp:TextBox> 
<asp:TextBox ID="txtDFS" runat="server" Width="75px"></asp:TextBox> 

protected void txtStocked_TextChanged(object sender, EventArgs e) 
    { 
     int stocked = Convert.ToInt16(txtStocked.Text); 
     int dfs = (100 - stocked); 
     txtDFS.Text = dfs.ToString(); 
     txtDFS.Text = txtStocked.Text; 
    } 
+0

Доступно с помощью asp: UpdatePanel или асинхронный запрос с использованием чего-то вроде JQuery? –

+0

Возможно, Javascript может быть вариантом? –

ответ

1

Решено это с помощью UpdatePanel. Вот обновленный код:

<asp:ScriptManager ID="SCManager" runat="server" /> 
<asp:UpdatePanel ID="SCPanel" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false"> 
<ContentTemplate> 

<asp:TextBox ID="txtStocked" runat="server" Width="75px" autopostback="true" OnTextChanged="Update_Text"></asp:TextBox> 
<asp:TextBox ID="txtDFS" runat="server" Width="75px" ReadOnly="True"></asp:TextBox> 

</ContentTemplate> 
</asp:UpdatePanel> 


protected void Update_Text(object sender, EventArgs e) 
    {    
     int stocked = Convert.ToInt16(txtStocked.Text); 
     int dfs = (100 - stocked); 
     txtDFS.Text = dfs.ToString();    
     SCPanel.Update(); 
    } 
+2

Вам не нужна панель обновления для использования на стороне клиента JS для этого –

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