2014-03-06 24 views
0

計算的按鈕單擊事件的GridView模板字段標籤值我有一個GridView(gvMRVdetails)與許多模板字段,一個是,獲取這是使用JavaScript

<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我綁定0.00它作爲TotalIssuedQty

然後我將在另一個文本框(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; 
     } 
    } 

我只能得到Si中的初始值0.00 s.If不能得到5我使用文本框來獲取動態計算的值,而不是 儘可能標註它,但使用標籤如何獲得它。

回答

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:添加任何控制,你會不會綁定到得到其數值(它可能會更試驗箱喜歡你試過)上每一行中網格視圖和其可見性設置爲false。在js中將計算值設置爲這個不可見控件並在後端獲取它。

+0

我們可以在JavaScript中使用可見的假控件嗎? – sureshhh

+0

你能否進一步解釋它,以便我可以幫忙,因爲我無法理解你的評論中'可見的錯誤控制'。另外告訴我爲什麼你需要可見的控制。 – user3240361

+0

從我的觀察,我們不能使用(指定值或使用值來計算)控件(如文本框或標籤或其他)在javascript.If我們想要使用它,它應該設置Visible =「true」.Am我吧? – sureshhh