2014-03-06 1 views
0

을 사용하여 계산됩니다 버튼 클릭 이벤트에 gridview에 템플릿 필드 레이블 값을 취득 나는 자바 스크립트

<asp:TemplateField HeaderText="Issued Total Qty" ItemStyle-Width="8%" ControlStyle-Width="98%"> 
    <ItemTemplate> 
     <asp:Label ID="lblIssuedTotalQty" runat="server" Text='<%#Bind("TotalIssuedQty") %>'></asp:Label> 
    </ItemTemplate> 
</asp:TemplateField> 

이 Intially 내가 TotalIssuedQty

로에 0.00를 결합, 많은 템플릿 필드와 GRIDVIEW ( gvMRVdetails), 하나는이

다음 나는 격자보기에있는 다른 텍스트 상자 (txtIssuedQty) 키 누름 이벤트의 javascript에 의해 "lblIssuedTotalQty"에 대한 새 값을 계산합니다. 내가 txtIssuedQty에 2.5를 입력하면 내가 예를 들어 볼 수

function CalculateTotalQty(obj) { 
     var grid = document.getElementById('<%=gvMRVdetails.ClientID %>'); 
     var rwIndex = 1; 
     var gvRowCount = grid.rows.length; 
     if (grid != null) { 
      for (rwIndex; rwIndex <= gvRowCount - 1; rwIndex++) { 

       var txtIssuedQty = grid.rows[rwIndex].cells[4].firstChild; 
       var lblIssuedTotalQty = grid.rows[rwIndex].cells[9].firstChild; 
       lblIssuedTotalQty.innerText = parseFloat(txtIssuedQty.value)*2 
       } 
      } 

에 따라 그 값을 할당 할 수 lblIssuedTotalQty는 5.It는 잘 작동 표시됩니다. 하지만 내 문제는 내가 ButtonClickevent

protected void btnAllocate_Click(object sender, EventArgs e) 
    { 
      foreach (GridViewRow GVR in gvMRVdetails.Rows) 
      { 
        Label a = GVR.FindControl("lblIssuedTotalQty") as Label; 
        string s = a.Text; 
     } 
    } 

내가 s.If 5를 얻을 수없는시의 초기 값 0.00을 얻을 수 있습니다 내가 사용하는 텍스트 상자에 동적으로 계산 된 값을 얻을 대신 할 입니다 그것을 라벨링 할 수는 있지만 라벨을 사용하여 그것을 얻는 방법.

답변

1

레이블 텍스트 값은 클라이언트 측에서 변경할 때 포스트 백에서 값을 유지하지 않습니다.

1)과 같이 게시 된 양식 값에서 값을 가져보십시오 :

Label a = GVR.FindControl("lblIssuedTotalQty") as Label; 
string s = Request[a.UniqueID] as string; 

2)를 검색 한 후 값을 저장하기 위해 클라이언트 측에서 숨겨진 필드를 사용하여 두 가지 옵션이 있습니다 다시 게시. 숨겨진 필드의 값을 설정하고 당신은 코드 숨김에서 검색 할 수

<ItemTemplate> 
    <asp:Label ID="lblIssuedTotalQty" runat="server" Text='<%#Bind("TotalIssuedQty") %>'>/asp:Label> 
    <asp:hiddenfield id="hdnIssuedTotalQty" runat="server"/> 
</ItemTemplate> 
+0

격자보기 coloumn, GV 너무 많은 행 hw 값을 많이 저장할 수 있습니다 HF – sureshhh

+0

서식 파일에 숨겨진 필드를 추가하십시오. –

+0

답변에 나와있는 것처럼 쉽게 할 수 있습니다. –

1

Sureshhh 내가 서버 컨트롤 버튼을 클릭하면 페이지 컨트롤이 라벨 '그래서로드되는 때문에 문제가 생각 lblIssuedTotalQty '다시 0.00에 바인딩되어 있으므로 뒤에 코드에서 액세스하면 값이 0.00이됩니다.

바인드되지 않는 텍스트 상자를 사용하려는 경우 언급 한대로 새 js 계산 값을 코드 뒤에 사용할 수 있습니다.

FIX : 모든 컨트롤은 그 값을 얻기 위해 결합하지 않습니다 추가 그리드보기 각 행에 (당신이 시도처럼도 테스트 상자 수)과 거짓에 가시성을 설정합니다. js에서 계산 된 값을이 보이지 않는 컨트롤로 설정하고 백엔드에서 가져옵니다.

+0

자바 스크립트에서 잘못된 컨트롤을 사용할 수 있습니까? – sureshhh

+0

ur 설명에서 'javascript에서 보이는 잘못된 컨트롤'을 이해할 수 없기 때문에 더 도움이 될 수 있습니다. 또한 왜 눈에 보이는 통제가 필요한지 말해주십시오. – user3240361

+0

내 관찰에서 우리는 자바 스크립트에서 (값을 할당하거나 계산 값을 사용하여) 텍스트 상자 나 레이블과 같은 컨트롤을 사용할 수 없습니다. 사용하려면 Visible = "true"로 설정해야합니다. 맞습니까? – sureshhh

관련 문제