天天看点

获取DataGrid中的值

1.在前台可见,在后台和脚本中获取值

(1)

<asp:TemplateColumn HeaderText="预警公式">
             <HeaderStyle Wrap="False" Width="210px"></HeaderStyle>
             <ItemStyle Wrap="False" Width="210px"></ItemStyle>
             <ItemTemplate>
              <asp:Label id="lblYwsm" Width="210px" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.YWSM") %>'>
              </asp:Label>
             </ItemTemplate>
</asp:TemplateColumn>

           

(2)后台

string ywsm = ((Label)(this.gridMain.Items[gridIndex].Controls[0].FindControl("lblYwsm"))).Text.Trim();
           

(3)脚本

var ywsm=document.all("gridMain__ctl"+(gridIndex+2)+"_lblYwsm").innerHTML;
           

2.在前台不可见,在后台获取其值

(1)

<asp:TemplateColumn Visible="False" HeaderText="流水号">
	<HeaderStyle Wrap="False" Width="30px"></HeaderStyle>
	<ItemStyle Wrap="False" Width="30px"></ItemStyle>
													<ItemTemplate>
														<asp:Label runat="server" id="lblLsh" Text='<%# DataBinder.Eval(Container, "DataItem.LSH") %>'>
														</asp:Label>
													</ItemTemplate>
</asp:TemplateColumn>
           

(2)后台

int lsh=Convert.ToInt32(((Label)(this.gridMain.Items[i].Controls[0].FindControl("lblLsh"))).Text.Trim());
           

3.在前台不可见,在脚本中获取其值

方法一:

(1)

<asp:datagrid id="gridMain" runat="server" Width="1200px" CssClass="Grid" PageSize="15" AllowPaging="True" Font-Names="宋体" AutoGenerateColumns="False">
	<SelectedItemStyle Wrap="False" CssClass="GridSelectedItem"></SelectedItemStyle>
	<EditItemStyle Wrap="False" CssClass="GridEditItem"></EditItemStyle>
	<AlternatingItemStyle Wrap="False" CssClass="GridAlternatingItem"></AlternatingItemStyle>
	<ItemStyle Wrap="False" CssClass="GridItem"></ItemStyle>
	<HeaderStyle Wrap="False" HorizontalAlign="Left" CssClass="GridHeader" VerticalAlign="Middle"></HeaderStyle>
	<Columns>
		<asp:ButtonColumn Visible="False" Text="Select" CommandName="Select"></asp:ButtonColumn>
		<asp:TemplateColumn>
			<HeaderStyle Wrap="False" Width="30px"></HeaderStyle>
			<ItemStyle Wrap="False" Width="30px"></ItemStyle>
			<ItemTemplate>
				<asp:CheckBox id="ckbSele" runat="server" Width="15px"></asp:CheckBox>
			</ItemTemplate>
		</asp:TemplateColumn>
		<asp:TemplateColumn Visible="False" HeaderText="流水号">
			<HeaderStyle Wrap="False" Width="30px"></HeaderStyle>
			<ItemStyle Wrap="False" Width="30px"></ItemStyle>
			<ItemTemplate>
				<asp:Label runat="server" id="lblLsh" Text='<%# DataBinder.Eval(Container, "DataItem.LSH") %>'>
				</asp:Label>
			</ItemTemplate>
		</asp:TemplateColumn>
		<asp:TemplateColumn HeaderText="预警指标编号">
			<HeaderStyle Wrap="False" Width="80px"></HeaderStyle>
			<ItemStyle Wrap="False" Width="80px"></ItemStyle>
			<ItemTemplate>
				<asp:Label id="lblZbbh" Width="80px" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.ZBBH") %>' lsh='<%# DataBinder.Eval(Container, "DataItem.LSH") %>' reply='<%# DataBinder.Eval(Container, "DataItem.REPLYCONTENT") %>'></asp:Label>
			</ItemTemplate>
		</asp:TemplateColumn>


	</Columns>
	<PagerStyle Visible="False"></PagerStyle>
</asp:datagrid>
           

(2)脚本

var obj = document.all("gridMain");
var lsh = obj.rows[checkedRowCount].cells[1].children[0].lsh;
var replyCont = obj.rows[checkedRowCount].cells[1].children[0].reply;
           

其中1为Datagrid中显示列的列次,从0开始计数

 方法二:

(1)前台

<asp:datagrid id="gridMain" runat="server" CssClass="Grid" Width="900px" AutoGenerateColumns="False"
													SelectedIndex="-1" PageSize="15" AllowPaging="True">
													<SelectedItemStyle CssClass="GridSelectedItem"></SelectedItemStyle>
													<EditItemStyle CssClass="GridEditItem"></EditItemStyle>
													<AlternatingItemStyle CssClass="GridAlternatingItem"></AlternatingItemStyle>
	<ItemStyle CssClass="GridItem"></ItemStyle>
	<HeaderStyle HorizontalAlign="Left" CssClass="GridHeader" VerticalAlign="Middle"></HeaderStyle>
	<Columns>
														<asp:ButtonColumn Visible="False" Text="Select" CommandName="Select"></asp:ButtonColumn>
														
														<asp:TemplateColumn HeaderText="未兑付数量" HeaderStyle-Wrap="False" ItemStyle-Wrap="False">
															<ItemTemplate>
																<asp:Label ID="lblFxmc1" Runat=server text='<%# DataBinder.Eval(Container, "DataItem.fxmc1") %>'>
																</asp:Label>
																
																<input id="lblBzbh1" type=hidden value='<%# DataBinder.Eval(Container, "DataItem.QYZT1") %>' runat="server" NAME="lblBzbh1">
																<input id="lblBzbh2" type=hidden value='<%# DataBinder.Eval(Container, "DataItem.qyzt2") %>' runat="server" NAME="lblBzbh2">
															</ItemTemplate>
														</asp:TemplateColumn>
														
	</Columns>
	<PagerStyle Visible="False"></PagerStyle>
</asp:datagrid>
           

(2)脚本

var vsBzbh1 = document.all("gridMain_ctl"+(i+2)+"_lblBzbh1").value;
var vsBzbh2 = document.all("gridMain_ctl"+(i+2)+"_lblBzbh2").value;
           

也可在后台获取

string bzbh1 = ((HtmlInputHidden)(this.gridMain.Items[i].Controls[0].FindControl("lblBzbh1"))).Value;
string bzbh2 = ((HtmlInputHidden)(this.gridMain.Items[i].Controls[0].FindControl("lblBzbh2"))).Value;
           

4.获取Datagrid整行的值

<script language=javascript>
function test()
{
  var currentrow=gridMain.rows(2);
  if (currentrow!=null)
	alert (currentrow.innerText);
}
</script>
           

5.前台放置一个Textbox

<asp:TemplateColumn HeaderText="预警指标名称">
<HeaderStyle Wrap="False" Width="150px"></HeaderStyle>
<ItemStyle Wrap="False" Width="150px"></ItemStyle>
	<ItemTemplate>
	        <span>
			<asp:TextBox AutoPostBack="False" runat="server" ID="txtZbmc" Width="150px" Text='<%# DataBinder.Eval(Container, "DataItem.ZBMC") %>'>
			</asp:TextBox>
		</span>
	</ItemTemplate>
</asp:TemplateColumn>
           

(1)在后台中获取值:

string zbmc = ((TextBox)(this.gridMain.Items[i].Controls[0].FindControl("txtZbmc"))).Text;
           

(2)在脚本中获取值

if(i<8)
	var zbmc=document.all("gridMain_ctl0"+(i+2)+"_txtZbmc").value;
else
	var zbmc=document.all("gridMain_ctl"+(i+2)+"_txtZbmc").value;