Datagrid后台动态增加行后怎么获取对应的数据
datagrid数据来源一个excel文件,采用自动生成列绑定。采用的把excel数据读入datatable,datable在第一行前增加一空行然后绑定到datagrid
然后我想在datagrid的第一行增加一行下拉对象dropdownlist。
增加是增加上去了,但是点页面上的button到后台事件后,取不到其datagrid第一行的下拉对象的数据,查看是空的,
如果说在这里还要再构建一次下拉对象的话,其选择的值都是初始值,请问要怎么解决呢?
this.gvExcel.ItemDataBound+=new DataGridItemEventHandler(gvExcel_ItemCreated);
。。。。。。。。
daCashFlow.Fill(dtExcel);
void gvExcel_ItemCreated(object sender, DataGridItemEventArgs e)
{
if (e.Item.ItemIndex == 0)
{
for (int i = 0; i < e.Item.Cells.Count; i++)
{
e.Item.Cells[i].Controls.Add(CreateSelect());
}
}
}
private DropDownList CreateSelect()
{
DropDownList selects = new DropDownList();
selects.Items.Add("批准",0)
selects.Items.Add("否决",1)
return selects
}
} --------------------编程问答-------------------- ((DropDownList)e.Item.FindControl("DDLdgService")).SelectedValue
---
selects id 是不是没设哦?会不会是跟这有关...呵呵 --------------------编程问答-------------------- 但是点页面上的button到后台事件后,取不到其datagrid第一行的下拉对象的数据
===============
DataGrid里面的按钮不能直接点进去吧?如果想给它写代码要用CommandName。 --------------------编程问答-------------------- 对象没有id的,和id没关系
通过gvExcel.item[0].cells[0].control[0]是取不到的
DataGrid里面的按钮不能直接点进去吧?如果想给它写代码要用CommandName。
---------------------
按钮不是一行一个按钮的,
只是在顶部有几个按钮而已 --------------------编程问答-------------------- HtmlSelect
不知道从页面上取怎么样... --------------------编程问答-------------------- <%@ Page Language="C#" AutoEventWireup="true" CodeFile="DataGrid.aspx.cs" Inherits="DataGrid" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<asp:DataGrid ID="dg1" runat="server" AutoGenerateColumns="true"></asp:DataGrid>
<asp:Button ID="bt1" runat="server" Text="提交" OnClick="bt_sumbit" />
</form>
</body>
</html>
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class DataGrid : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
BindData();
}
private void BindData()
{
string[] data ={"", "AA", "BB", "CC" };
this.dg1.DataSource = data;
this.dg1.ItemCreated += new DataGridItemEventHandler(dg1_ItemCreated);
this.dg1.DataBind();
}
void dg1_ItemCreated(object sender, DataGridItemEventArgs e)
{
if (e.Item.ItemIndex == -1)
{
for (int i = 0; i < e.Item.Cells.Count; i++)
{
e.Item.Cells[i].Controls.Clear();
e.Item.Cells[i].Controls.Add(GetDrop());
}
}
}
DropDownList GetDrop()
{
DropDownList dr = new DropDownList();
dr.Items.Add(new ListItem("批准", "0"));
dr.Items.Add(new ListItem("否决", "1"));
return dr;
}
public void bt_sumbit(object sender, EventArgs e)
{
DataGridItem item = this.dg1.Items[0];
if (null != item)
{
Response.Write(item.Cells[0].Text);
}
}
}
补充:.NET技术 , ASP.NET