热门文章
阿标在线 动力3.62HTML生成3.62网站文件说明
动力3.62整合动网7.0 SP2插
MDAC2.8 下载!
动力3.62版 防止垃圾留言
动力3.6全方位改动方法
让3.62不同频道实现不同风
把3.62首页登陆为横向代码
动易3.6首页随机FLASH修改
362首页和文章频道页图文幻
个性化修改3.6宝典
3.62轻易实现网摘功能
如何正确统计中文字数?
弹出JAVASCRIPT语法错误对
后台使“网站顶部LOGO地址
最新图片文章横向移动的修
html 生成艺术字
3.6 Sp2 Logo和Banner及广
日期值的计算
汉字转拼音
首页“图片更新”图片滚动
简体中文转换为繁体中文的
如何在css中定义链接的下划
批量获取DataGrid控件模板列中的数据
[ 录入:阿标 | 点击数: | 更新时间:2005-3-12 9:15:00]
批量获取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控件,扫描所有的子控件就可以实现对数据的批量快速删除、修改等操作。