Datatable 虚拟表操作
2011-05-21 15:45 MzXy 阅读(391) 评论(0) 收藏 举报Datagird表格
<asp:datagrid id="DataGrid1" runat="server" AutoGenerateColumns="False" BorderColor="#ADAAAD"
ShowFooter="True" Width="255px" oncancelcommand="DataGrid1_CancelCommand"
ondeletecommand="DataGrid1_DeleteCommand" oneditcommand="DataGrid1_EditCommand"
onupdatecommand="DataGrid1_UpdateCommand">
<AlternatingItemStyle BackColor="#EFEFEF"></AlternatingItemStyle>
<ItemStyle BackColor="White"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="White" BackColor="#00659C"></HeaderStyle>
<Columns>
<asp:BoundColumn DataField="recordid" HeaderText="单据编号">
<HeaderStyle Wrap="False"></HeaderStyle>
<ItemStyle Wrap="False"></ItemStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="depotcode" HeaderText="仓库编码">
<HeaderStyle Wrap="False" ForeColor="White"></HeaderStyle>
<ItemStyle Wrap="False"></ItemStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="batchno" HeaderText="样品批号">
<HeaderStyle Wrap="False" ForeColor="White"></HeaderStyle>
<ItemStyle Wrap="False"></ItemStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="SampleID" HeaderText="样品编码">
<HeaderStyle Wrap="False" ForeColor="White"></HeaderStyle>
<ItemStyle Wrap="False"></ItemStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="remain" HeaderText="数量">
<HeaderStyle Wrap="False" ForeColor="White"></HeaderStyle>
<ItemStyle Wrap="False"></ItemStyle>
</asp:BoundColumn>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" CancelText="取消" EditText="编辑">
<HeaderStyle Wrap="False"></HeaderStyle>
</asp:EditCommandColumn>
<asp:ButtonColumn Text="删除" CommandName="Delete"></asp:ButtonColumn>
</Columns>
<PagerStyle Mode="NumericPages"></PagerStyle>
</asp:datagrid>
后台执行语句
protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { ViewState["dt"] = GetDataTable(); } } /// <summary> /// 创建临时表 /// </summary> /// <returns></returns> public DataTable GetDataTable() { //建表 DataTable dt = new DataTable(); dt.Columns.Add(new DataColumn( "recordid", typeof(string))); dt.Columns.Add(new DataColumn( "depotcode", typeof(string))); dt.Columns.Add(new DataColumn( "batchno", typeof(string))); DataColumn SampColumn= dt.Columns.Add( "SampleID", typeof(string)); dt.Columns.Add(new DataColumn( "remain", typeof(decimal))); dt.PrimaryKey = new DataColumn[] { SampColumn }; //设置主键 return dt; } /// <summary> /// 取消 /// </summary> /// <param name="source"></param> /// <param name="e"></param> protected void DataGrid1_CancelCommand(object source, DataGridCommandEventArgs e) { DataGrid1.EditItemIndex = -1; DataGrid1.DataSource = (DataTable)ViewState["dt"]; DataGrid1.DataBind(); } /// <summary> /// 删除 /// </summary> /// <param name="source"></param> /// <param name="e"></param> protected void DataGrid1_DeleteCommand(object source, DataGridCommandEventArgs e) { DataTable dt=(DataTable)ViewState["dt"]; DataRow dr = dt.Rows.Find(e.Item.Cells[3].Text); dt.Rows.Remove(dr); ViewState["dt"] = dt; DataGrid1.DataSource = (DataTable)ViewState["dt"]; DataGrid1.DataBind(); } /// <summary> /// 编辑 /// </summary> /// <param name="source"></param> /// <param name="e"></param> protected void DataGrid1_EditCommand(object source, DataGridCommandEventArgs e) { ViewState["Sample"] = e.Item.Cells[3].Text; DataGrid1.EditItemIndex = e.Item.ItemIndex; DataGrid1.DataSource = (DataTable)ViewState["dt"]; DataGrid1.DataBind(); } /// <summary> /// 更新 /// </summary> /// <param name="source"></param> /// <param name="e"></param> protected void DataGrid1_UpdateCommand(object source, DataGridCommandEventArgs e) { DataTable dt = (DataTable)ViewState["dt"]; DataRow dr = dt.Rows.Find(ViewState["Sample"].ToString()); dr[0] =((TextBox)e.Item.Cells[0].Controls[0]).Text; dr[1] = ((TextBox)e.Item.Cells[1].Controls[0]).Text; dr[2] = ((TextBox)e.Item.Cells[2].Controls[0]).Text; dr[3] = ((TextBox)e.Item.Cells[3].Controls[0]).Text; dr[4] = ((TextBox)e.Item.Cells[4].Controls[0]).Text; ViewState["dt"] = dt; DataGrid1.EditItemIndex = -1; DataGrid1.DataSource = (DataTable)ViewState["dt"]; DataGrid1.DataBind(); }
浙公网安备 33010602011771号