2012-01-06 6 views
0

クライアントサイトJavaScriptでasp.net GridViewコントロールからセル値を読み取ろうとしています。 以下は私のGridView HTMLビューです。JavaScriptのASP.net TextBoxテンプレート列から値を読み取る方法

<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 
--------------------------- 

私の問題は、[1] TemplateColumnとしてASP.netのTextBoxコントロールが含まれている[i]が.cells私はgrid.rowsから値を取得する方法がわからないです。

すべての提案は本当に感謝しています。

答えて

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ありがとうございました。 –

関連する問題