<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>
I am using traditional JavaScript(not JQUERY) to read a value from Asp.net GridView at client site.
But after I trying several times, I found that I don’t know how could I read a value from BoundField Column which is “Visile=False” ,in pure 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++)
{
if (j == 1)
{
OutputString += "grid.rows[i].cells[" + j + "] :" + grid.rows[i].cells[j] +
"\ngrid.rows[i].cells[" + j + "].innerText :" + grid.rows[i].cells[j].firstChild.value;
OutputString += "\n\n";
}
else
{
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";
}
}
}
}
Output
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 : 12
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
In Javascript, is this possible to read the value from bondfield which is visible false?
[Updated]
All the output which I get only from Textbox template field and BoundField which is not “Visible=False”.
Please let me know the way, and your suggestion will be appreciated.
Controls with Visible=”false” will not be rendered and therefore generate no HTML.
If you want to make your controls invisible but still reference them, first remove Visible=”false” and then you could either use CSS on your controls:
Or you could hide the GridView columns (your first four BoundFields) in your RowDataBound event after they’ve been rendered: