2012-01-06 73 views
0

我想从客户端网站JavaScript中的asp.net GridView控件读取单元格值。 以下是我的GridView HTML视图。如何从ASP.net文本框模板列中读取值

<asp:GridView 
ID="GridView1" 
runat="server" 
AutoGenerateColumns="False" 
Width="596px" 
DataKeyNames="Key" > 

<Columns> 
    <asp:BoundField DataField="Key" HeaderText="Key" SortExpression="key" Visible="False" /> 
    <asp:BoundField DataField="StockId" HeaderText="StockId" Visible="False" /> 
    <asp:BoundField DataField="Freq1" HeaderText="Freq1" Visible="False" /> 
    <asp:BoundField DataField="Freq2" HeaderText="Freq2" Visible="False" />  

    <asp:BoundField DataField="MedicineName" HeaderText="MedicineName" ReadOnly="true" /> 

    <asp:TemplateField HeaderText="DoseQty" >               
     <ItemTemplate> 
      <asp:TextBox ID="txtDoseQty" Text='<%# Bind("DoseQty") %>' runat="server" 
      Height="23px" Width="38px" onchange="javascript:dataChange(event);" ></asp:TextBox> 
     </ItemTemplate> 
    </asp:TemplateField> 

    <asp:BoundField DataField="DoseUOM" HeaderText="DoseUOM" ReadOnly="true" /> 

    <asp:TemplateField HeaderText="Duration"> 
     <EditItemTemplate> 
      <asp:TextBox ID="Duration" runat="server" Height="16px" 
       Text='<%# Bind("Duration") %>' Width="45px" onkeypress="return isNumberKey(event);"></asp:TextBox> 
     </EditItemTemplate> 
     <ItemTemplate> 
      <asp:Label ID="lblDuration" Text='<%# Bind("Duration") %>' runat="server"></asp:Label> 
     </ItemTemplate> 
    </asp:TemplateField> 

    <asp:TemplateField HeaderText="Delete All"> 
     <HeaderTemplate> 
      <asp:CheckBox ID="chkHeaderDelete" runat="server" Text="Delete All" 
       onclick="javascript:SelectheaderCheckboxes(this)" />                
     </HeaderTemplate> 
     <ItemTemplate> 
      <asp:CheckBox ID="chkItemDelete" runat="server" AutoPostBack="true" 
       Text="Delete" onclick="javascript:SelectitemCheckboxes(this)" /> 
     </ItemTemplate> 
    </asp:TemplateField> 

    <asp:CommandField HeaderText="Update" 
     ShowEditButton="True"               
     CausesValidation="false" /> 

</Columns> 

我使用的JavaScript函数读取这个网格视图。

var grid = document.getElementById("<%= GridView1.ClientID %>"); 
var OutputString = ""; 
if (grid.rows.length > 0) { 
for (i = 1; i < grid.rows.length - 1; i++) { 
    for (j = 0; j < grid.rows[i].cells.length; j++) { 
     OutputString += "grid.rows[i].cells[" + j + "] :" + grid.rows[i].cells[j] + 
      "\ngrid.rows[i].cells[" + j + "].innerText :" + grid.rows[i].cells[j].innerText; 
     OutputString += "\n\n";    
    } 
} 
} 

这是我的输出。

--------------------------- 
Message from webpage 
--------------------------- 
grid.rows[i].cells[0] :[object] 
grid.rows[i].cells[0].innerText :Abd pant XXXL 

grid.rows[i].cells[1] :[object] 
grid.rows[i].cells[1].innerText : 

grid.rows[i].cells[2] :[object] 
grid.rows[i].cells[2].innerText :Pieces 

grid.rows[i].cells[3] :[object] 
grid.rows[i].cells[3].innerText :1 

grid.rows[i].cells[4] :[object] 
grid.rows[i].cells[4].innerText :Delete 

grid.rows[i].cells[5] :[object] 
grid.rows[i].cells[5].innerText :Edit 

--------------------------- 
OK 
--------------------------- 

我的问题是我不知道如何从grid.rows值[I] .cells [1]它包含ASP.net TextBox控件作为TemplateColumn中。

每一个建议将非常感激。

回答

3
function getgridvalue() 
    { 
     // Call this on button click 
    Array obj; 
     var gridview=document.getElementById("<GridView ID here>"); //Grab a reference to the Grid 
     for (i=1;i<gridview.rows.length;i++) //Iterate through the rows 
     { 
     obj[i]=gridview.rows[i].cells[1].firstChild.value; //get the values 
     } 

    } 

这里是一个近似的方法。希望它有帮助。

+0

你的解决方案完全有助于我的问题。感谢@Neha。 – 2012-01-06 08:57:40

相关问题