2009-07-21 7 views
2

숨겨진 입력 컨트롤을 C# 코드 숨김 파일에 동적으로 만든 다음 해당 값을 JavaScript로 채 웁니다. 이제 C#에서 이러한 변수에 액세스하려고합니다.JavaScript로 편집 된 숨겨진 입력 값에 액세스

파이어 버그는 값이 자바 스크립트에서 변경된다는 것을 보여 주지만 코드의 원래 값을 다시 가져옵니다. 어떤 통찰력이라도 대단히 감사 할 것입니다.

자바 스크립트 :

function injectVariables(){ 
    var hidden = document.getElementById("point1"); 
    hidden.value = 55; 
    var hidden2 = document.getElementById("point2"); 
    hidden2.value = 55; 
    var hidden3 = document.getElementById("point3"); 
    hidden3.value = 55; 
    alert("values changed"); 
} 

ASPX :

<asp:Button OnClick="Update_PlanRisks" OnClientClick="injectVariables()" Text="updatePlanRisks" runat="server" /> 

C 번호 :을 CreateChildControls에서

protected override void CreateChildControls() 
{ 
    base.CreateChildControls(); 
    int planId = Convert.ToInt32(Request.QueryString.Get("plan")); 
    planRisks = wsAccess.GetPlanRiskByPlanId(planId); 

    foreach (PlanRisk pr in planRisks) 
    { 
     HtmlInputHidden hiddenField = new HtmlInputHidden(); 
     hiddenField.ID= "point" + pr.Id; 
     hiddenField.Name = "point" + pr.Id; 
     hiddenField.Value = Convert.ToString(pr.Severity); 
     this.Controls.Add(hiddenField); 
    } 
} 

protected void Update_PlanRisks(object sender, EventArgs e) 
{ 
    foreach (PlanRisk pr in planRisks) 
    { 
     int planRiskId = pr.Id; 
     string planRiskName = "point" + pr.Id; 
     HtmlInputHidden hiddenControl = (HtmlInputHidden) FindControl(planRiskName); 
     string val = hiddenControl.Value; 
    } 
} 

답변

0

가 명시 적으로 숨겨진 필드 (들)의 값을 설정합니다. CreateChildControls는 페이지 수명주기 동안 (잠재적으로 여러 번) 실행될 때마다 제출 작업을 클릭하면 클릭 핸들러 Update_PlanRisks를 실행하기 전에 CreateChildControls를 포함하여 페이지가 다시 게시되고 전체 라이프 사이클 동안 다시 실행됩니다. ...

if(!IsPostBack) 
{ 
    hiddenField.Value = Convert.ToString(pr.Severity); 
} 
+0

(! IsPostBack) {} 내 문자열 val = ""을 추가 할 때. 내가 어떻게 주사 된 자바 스크립트 값에 액세스 할 수 있을까요? – ErnieStings

2

이 요청에서 값을 얻을 수있는 하나의 방법입니다

:

이 문제를 방지하는 가장 간단한 방법은 숨겨진 필드의 값을 설정하기 전에 당신이 다시 게시에 있는지 확인하는 것입니다

string point1 = Request.Form["point1"]; 
관련 문제