首页 > 开发 > 综合 > 正文

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

2024-07-21 02:22:54
字体:
来源:转载
供稿:网友
批量获取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控件,扫描所有的子控件就可以实现对数据的批量快速删除、修改等操作。




发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表