批量获取DataGrid控件模板列中的数据

王朝c#·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

批量获取DataGrid控件模板列中的数据

在DataGrid中一般只能单个获取每一行的数据,若要批量获取DataGrid控件中的数据必须对每一个模板列的控件进行扫描,获取其中的数据。

我本想做的程序是根据不同的行数,由用户一次输入若干数据,提交后系统自动获取批量数据的程序。

以下程序简单表达了需要实现的功能

test.aspx

..........

<asp:DataGrid id="dgResult" runat="server" BorderColor="#DEBA84" BorderStyle="None" CellSpacing="2"

BorderWidth="1px" BackColor="#DEBA84" CellPadding="3" AutoGenerateColumns="False">

<FooterStyle ForeColor="#8C4510" BackColor="#F7DFB5"></FooterStyle>

<SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#738A9C"></SelectedItemStyle>

<ItemStyle ForeColor="#8C4510" BackColor="#FFF7E7"></ItemStyle>

<HeaderStyle Font-Bold="True" ForeColor="White" BackColor="#A55129"></HeaderStyle>

<Columns>

<asp:BoundColumn DataField="id" HeaderText="列号"></asp:BoundColumn>

<asp:TemplateColumn HeaderText="列名">

<ItemTemplate>

<asp:TextBox Runat="server" Enabled="True" Width="50" ID="col"></asp:TextBox>

</ItemTemplate>

</asp:TemplateColumn>

<asp:TemplateColumn HeaderText="整数精度">

<ItemTemplate>

<asp:TextBox Runat="server" Enabled="True" ID="Textbox1" Width="50">20</asp:TextBox>

</ItemTemplate>

</asp:TemplateColumn>

<asp:TemplateColumn HeaderText="小数点精度">

<ItemTemplate>

<asp:TextBox Runat="server" Enabled="True" ID="Textbox2" Width="50">10</asp:TextBox>

</ItemTemplate>

</asp:TemplateColumn>

</Columns>

<PagerStyle HorizontalAlign="Center" ForeColor="#8C4510" Mode="NumericPages"></PagerStyle>

</asp:DataGrid>

<asp:Button id="btnOK" runat="server" Text="提交"></asp:Button>

......

test.aspx.cs

private void Page_Load(object sender, System.EventArgs e)

{

// 在此处放置用户代码以初始化页面

if(!IsPostBack)

mfbind(DataSource());

}

private IList DataSource()

{

DataTable dt=new DataTable();

DataColumn dc=new DataColumn();

dc.ColumnName="id";

dc.DataType=System.Type.GetType("System.Int32");

dc.ReadOnly=true;

dc.Unique=true;

dc.AutoIncrement=true;

dc.AutoIncrementSeed=0;

dc.AutoIncrementStep=1;

dt.Columns.Add(dc);

dc=new DataColumn();

dc.ColumnName="列名称";

dc.DataType=System.Type.GetType("System.String");

dt.Columns.Add(dc);

for(int i=0;i<10;i++)

{

DataRow dr=dt.NewRow();

dr[1]=i;

dt.Rows.Add(dr);

}

Session["Source"] = dt;

return dt.DefaultView;

}

private void mfbind(IList dv)

{

this.dgResult.DataSource=(DataView)dv;

this.dgResult.DataBind();

}

private void btnOK_Click(object sender, System.EventArgs e)

{

//string tmpa=dgResult__ctl2_col1.Text;

TextBox txt;

ArrayList mArr=new ArrayList();

for(int i=0;i<10;i++)

{

txt=new TextBox();

txt=(TextBox)dgResult.Items[i].FindControl("col");

mArr.Add(txt.Text);

}

for(int i=0;i<mArr.Count;i++)

this.lblProblem.Text+=mArr[i].ToString()+" ; ";

}

其实这样的程序有共通性,通过DataGrid控件可以对数据进行批量处理,特别是对删除数据等操作的过程中使用起来及其方便快捷,只要将程序的模板列中的TextBox控件改为CheckBox控件或者DropDownList控件,扫描所有的子控件就可以实现对数据的批量快速删除、修改等操作。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航