2014-06-16 6 views
0

여기 내 ASPX 코드자바 스크립트 textbox_changed 값

<%@ Page Title="About Us" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="About.aspx.cs" Inherits="About" %> 

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> 
<script language="javascript" type="text/javascript"> 
     function sum(t1) 
     { 
      var txt1 = document.getElementById('MainContent_TextBox2').value; 
      var result = parseInt(txt1)/2; 
      var result1 = parseInt(result); 
      if (!isNaN(result)) 
      { 
       document.getElementById(t1).value = result1; 
      } 
     } 
</script> 
</asp:Content> 
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 
<asp:TextBox ID="TextBox2" runat="server" onkeyup="sum('MainContent_TextBox3')"</asp:TextBox> 
<asp:TextBox ID="TextBox3" runat="server" ReadOnly="True"></asp:TextBox> 
<br /> 
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click"/> 
<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox> 

하고 내 C# 코드는

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

public partial class About : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 
    protected void Button1_Click(object sender, EventArgs e) 
    { 
     TextBox4.Text = TextBox3.Text; 
    } 
} 

문제가 내가 Button1을에 오류를 클릭하지 않고 TextBox4가 비어있을 때한다는 점이다 그리고 난 것을 원하는 Button1을 클릭하면 textbox3 값이 textbox4로 전송됩니다.

답변

0

TextBox3에 설정 한 ReadOnly="True"이 원인입니다.

ASP.NET에서 컨트롤을 ReadOnly으로 설정하면 페이지가 원래 렌더링되었을 때 컨트롤에 배치 된 값이 업데이트되지 않습니다.

브라우저에서 컨트롤의 값을 변경하는 경우 (수행 중일 때) 서버로 다시 보내지는 값은 TextBox 컨트롤의 값에 영향을 미치지 않습니다. 덕분에 이전 값으로 유지됩니다. ViewState.

대답은 <asp:HiddenField>에 새 값을 저장하는 것입니다.이 값은 TextBox3과 동시에 업데이트해야합니다.

그런 다음 서버에서 원하는 값을 포함하는 숨겨진 필드의 값을 사용하십시오. 또한 포스트 백의 일부로 숨겨진 컨트롤에서 텍스트 상자의 값을 업데이트해야한다는 점을 기억하십시오.