首页 >> VC.Net >> 正文
批量获取DataGrid控件模板列中的数据-VC.NET
来源:Dotnet频道 作者:采集 时间:2008-3-31


  在DataGrid中一般只能单个获取每一行的数据,若要批量获取DataGrid控件中的数据必须对每一个模板列的控件进行扫描,获取其中的数据。
  
  我本想做的程序是根据不同的行数,由用户一次输入若干数据,提交后系统自动获取批量数据的程序。
  
  以下程序简单表达了需要实现的功能
  
  test.aspx
  
  ..........
  
  <asp:DataGrid id="dgResult" runat="server" BorderColor="#DEBA84" Border 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控件,扫描所有的子控件就可以实现对数据的批量快速删除、修改等操作。
相关新闻
相关评论
 
评论表单加载中...
 
VC.Net文章

 在Visual C++应

 编辑:admin

 时间:2008-3-10


   .NET Framework 中多语言支持的实现-.NET Framework
   将Eiffel系统集成到.NET Framework中-.NET Framework
   04年五种常用RAD的测验比较(1)-.NET Framework
   04年五种常用RAD的测验比较(2)-.NET Framework
   04年五种常用RAD的测验比较(3)-.NET Framework
最新文章
   .NET Framework 中多语言支持的实现-.NET Framework
   将Eiffel系统集成到.NET Framework中-.NET Framework
   04年五种常用RAD的测验比较(1)-.NET Framework
   04年五种常用RAD的测验比较(2)-.NET Framework
   04年五种常用RAD的测验比较(3)-.NET Framework
总站搜索
搜索
 
热门文章
   oracle数据库文件中的导入\导出
   用Oracle10g列值掩码技术隐藏敏感数据
   VB程序中用ADO对象动态创建数据库和表-VB.NET
   用VB6写简单程序 让电骡自动关机-VB.NET
   使用.NET2.0编写COM组件供VB调用-VB.NET
   VB.NET:键盘控制焦点移动-VB.NET
   用VB.NET绘制GDI图形-VB.NET
   vb.net中应用 ArrayList 实例-VB.NET
 
推荐文章
ASP.NET中的状态管理-ASP.NET
VC、IE、ASP环境下打印、预备的完美解决方案
oracle数据库文件中的导入\导出
VB.NET中快速访问注册表技巧-VB.NET
在vb中实现超连接的方法!和直接发邮件-VB.NET
用VB做realplayer播放列表-VB.NET
在VB.NET中如何实现和利用SortedLists-VB.NET
利用VB.NET Stopwatch对象记录时间-VB.NET
成都古羌科技有限公司版权所有: Copyright@2007-2010 ,ALL Rights Reserved 蜀ICP备07017240号