2014-03-06 21 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