C# .Net Gridview
1、分页查询
导图
前台:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebGv2.aspx.cs" Inherits="WebApplication6.WebGv2" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <form id="form1" runat="server"> <div> <%--AllowPaging:True 数据进行分页 PageSize:3 每页分'3'行 OnPageIndexChanging: 页码改变事件 --%> <asp:GridView ID="GridView1" runat="server" AllowPaging="True" OnPageIndexChanging="GridView1_PageIndexChanging" PageSize="3"> </asp:GridView> </div> </form> </body> </html>
--
后台:

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebApplication6 { public partial class WebGv2 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //打开页面开始加载,后续的提交中不参与加载 if (!IsPostBack) { bind(); } } //查询数据的方法 private void bind() { string sql = "select * from student order by id"; //设置表格的数据源为查询的数据表 GridView1.DataSource= MyDBSql.excutSql(sql); //绑定控件 GridView1.DataBind(); } /// <summary> /// 页码改变事件 /// </summary> /// <param name="sender">事件源</param> /// <param name="e">对象 事件</param> protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) { //设置数据表格的页索引为当前事件 单击的页的编码 GridView1.PageIndex = e.NewPageIndex; //重新调用查询数据方法 bind(); } } }
--
2、基本的增删改查页面+通过面板的隐藏实现“多页面超链接”
前台:

<%@ Page Title="手打标签内外箱二维码比对" Language="C#" MasterPageFile="~/MyMasterPage.master" AutoEventWireup="true" CodeFile="csrC591.aspx.cs" Inherits="csrC560_csrC591" StylesheetTheme="MyPTN" %> <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %> <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server"> <asp:LinkButton runat="server" ID="btn_AddShow" OnClick="btn_AddShow_Click">新增&查询&编辑&删除</asp:LinkButton>    <asp:LinkButton runat="server" ID="btn_BatchAddShow" OnClick="btn_BatchAddShow_Click">内外箱比对</asp:LinkButton> <asp:Panel runat="server" ID="AddPanel"> <table id="Table1" runat="server" class="mes_Blue" style="font-family: Tahoma " width="45%" border="1"> <tr> <th style="height: 16px" colspan="13">手打标签内外箱二维码分割符信息注册</th> </tr> </table> <table id="Table2" runat="server" style="font-family: Tahoma " width="45%" border="1"> <tr> <td bgcolor="#ffffff">客户别:</td> <td> <asp:TextBox ID="txt_Cust" runat="server" Width="97.5%" AutoPostBack="True" ></asp:TextBox> </td> <td bgcolor="#ffffff">模板名:</td> <td> <asp:TextBox ID="txt_Template" runat="server" Width="97.5%" AutoPostBack="True"></asp:TextBox> </td> </tr> <tr> <td bgcolor="#ffffff">内箱二维码分隔符:</td> <td> <asp:TextBox ID="txt_InnerboxSeparator" runat="server" Width="97.5%" AutoPostBack="True"></asp:TextBox> </td> <td bgcolor="#ffffff">外箱二维码分隔符:</td> <td> <asp:TextBox ID="txt_OuterboxSeparator" runat="server" Width="97.5%" AutoPostBack="True"></asp:TextBox> </td> </tr> <tr> <td bgcolor="#ffffff">内箱二维码分隔符起始位置:</td> <td> <asp:TextBox ID="txt_StartpositionOfInner" runat="server" Width="97.5%" AutoPostBack="True"></asp:TextBox> </td> <td bgcolor="#ffffff">内箱二维码分隔符结束位置:</td> <td> <asp:TextBox ID="txt_EndpositionOfInner" runat="server" Width="97.5%" AutoPostBack="True"></asp:TextBox> </td> </tr> <tr> <td bgcolor="#ffffff">外箱二维码分隔符起始位置:</td> <td> <asp:TextBox ID="txt_StartpositionOfOuter" runat="server" Width="97.5%" AutoPostBack="True"></asp:TextBox> </td> <td bgcolor="#ffffff">外箱二维码分隔符结束位置:</td> <td> <asp:TextBox ID="txt_EndpositionOfOuter" runat="server" Width="97.5%" AutoPostBack="True"></asp:TextBox> </td> </tr> <tr> <td colspan="8" align="center"> <asp:Button runat="server" ID="Button1" Text="新增" Width="65px" Height="25px" OnClick="Add_Click" class="ptn-input" propertiesLableName="Add"/> <asp:Button runat="server" ID="Button2" Text="Query" Width="65px" Height="25px" OnClick="Query_Click" class="ptn-input" propertiesLableName="Query" /> <asp:Button runat="server" ID="Button3" Text="清空" Width="65px" Height="25px" OnClick="Clear_Click" class="ptn-input" propertiesLableName="Clear"/> </td> </tr> </table> </asp:Panel> <asp:Panel runat="server" ID="ComparePanel" Visible="false"> <table id="Table4" runat="server" class="mes_Blue" style="font-family: Tahoma " width="45%" border="1"> <tr> <th style="height: 16px" colspan="13">内外箱二维码比对</th> </tr> </table> <table id="tb_Batch" runat="server" class="mes_Blue" style="font-family: Tahoma " width="45%" border="1"> <tr> <td bgcolor="#ffffff">客户别:</td> <td><asp:TextBox ID="txt_Cust2" runat="server" Width="97.5%" AutoPostBack="True" OnTextChanged="txt_Cust2_TextChanged" ></asp:TextBox></td> </tr> <tr> <td bgcolor="#ffffff">模板:</td> <td><asp:DropDownList runat="server" ID="ddl_Template" OnSelectedIndexChanged="ddl_Template_SelectedIndexChanged"></asp:DropDownList></td> </tr> <tr> <td bgcolor="#ffffff">内箱标签二维码:</td> <td> <asp:TextBox ID="txt_Inner" runat="server" Width="97.5%" AutoPostBack="True" ></asp:TextBox> </td> </tr> <tr> <td bgcolor="#ffffff">外箱标签二维码:</td> <td> <asp:TextBox ID="txt_Outer" runat="server" Width="97.5%" AutoPostBack="True"></asp:TextBox> </td> </tr> <tr> <td><asp:Button runat="server" ID="Button4" Text="比对" Width="65px" Height="25px" OnClick="Submit_Click" class="ptn-input" propertiesLableName="Submit"/></td> <td><asp:Button runat="server" ID="Button5" Text="清空" Width="65px" Height="25px" OnClick="Clear_Click1" class="ptn-input" propertiesLableName="Clear"/></td> </tr> </table> </asp:Panel> <asp:Label runat="server" ID="lb_Msg" ForeColor="Red"></asp:Label><br/> <asp:Image ID="Image1" runat="server" Visible="false" /> <asp:Panel runat="server" Style=" font-size: 14px; font-family: Arial;color:black" ID="gvAddPanel" > <asp:GridView ID="gv" SkinID="PTIGV_Blue3" runat="server" AutoGenerateColumns="False" OnRowDataBound="gv_RowDataBound" OnRowCancelingEdit="gv_RowCancelingEdit" OnRowUpdating="gv_RowUpdating" OnRowEditing="gv_RowEditing" OnRowDeleting="gv_RowDeleting" EnableModelValidation="True"> <AlternatingRowStyle BackColor="#dff4ff" /> <Columns> <asp:BoundField DataField="Cust" HeaderText="客户别" /> <asp:BoundField DataField="Template" HeaderText="模板名" /> <asp:BoundField DataField="InnerboxSeparator" HeaderText="内箱分割符" /> <asp:BoundField DataField="StartpositionOfInner" HeaderText="内箱分隔符起始位置" /> <asp:BoundField DataField="EndpositionOfInner" HeaderText="内箱分隔符结束位置" /> <asp:BoundField DataField="OuterboxSeparator" HeaderText="外箱分隔符" /> <asp:BoundField DataField="StartpositionOfOuter" HeaderText="外箱分隔符起始位置" /> <asp:BoundField DataField="EndpositionOfOuter" HeaderText="外箱分隔符结束位置 " /> <asp:BoundField DataField="CreatedBy" HeaderText="注册人" /> <asp:BoundField DataField="CreateTime" HeaderText="注册时间" /> <asp:BoundField DataField="ModifiedBy" HeaderText="修改人" /> <asp:BoundField DataField="ModifiedTime" HeaderText="修改时间" /> <asp:CommandField HeaderText="编辑" ButtonType="Image" ShowEditButton="True" EditImageUrl="/images/Edit.gif"/> <asp:CommandField HeaderText="删除" ButtonType="Image" ShowDeleteButton="True" DeleteImageUrl="/images/Delete.gif"/> </Columns> </asp:GridView> </asp:Panel> </asp:Content>
后台:

using Aspose.Cells; using System; using System.Collections.Generic; using System.Data; using System.Drawing; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Text; using System.Reflection; /// <summary> /// [C2212108] 手打内外箱标签信息一致性比对页面建立 /// </summary> public partial class csrC560_csrC591 : MyBasePage { PTN_Fun.Fun fun; PTN_dbLink.sqlLink sqlLink = new PTN_dbLink.sqlLink(); string srv = PTN_mes.Global.sql_srv; string dbs = PTN_mes.Global.sql_dbs; string srvSI = PTN_mes.Global.SrvName.SiSrv; string dbsSI = PTN_mes.Global.DbName.SiDB; PTN_Fun.Fun Fun = new PTN_Fun.Fun(PTN_mes.Global.sql_srv, PTN_mes.Global.sql_dbs); DataTable dt_auth; string user_id = ""; string authority = ""; int row_count = 0; protected void Page_Load(object sender, EventArgs e) { dt_auth = this.AuthorityTable; user_id = dt_auth.Rows[0]["User"].ToString().Trim(); authority = dt_auth.Rows[0]["Others"].ToString(); ViewState["authority"] = authority; lb_Msg.Text = string.Empty; Image1.Visible = false; Image1.ImageUrl = string.Empty; } /// <summary> /// [C2212108] 注册面板 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btn_AddShow_Click(object sender, EventArgs e) { cleanView(); AddPanel.Visible = true; ComparePanel.Visible = false; } /// <summary> /// [C2212108] 比对面板 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btn_BatchAddShow_Click(object sender, EventArgs e) { cleanView(); AddPanel.Visible = false; ComparePanel.Visible = true; } /// <summary> /// [C2212108] 注册 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Add_Click(object sender, EventArgs e) { try { //请空当前页面 cleanView(); //判断为空 if (string.IsNullOrEmpty(txt_Cust.Text.Trim()) && string.IsNullOrEmpty(txt_EndpositionOfInner.Text.Trim()) && string.IsNullOrEmpty(txt_EndpositionOfOuter.Text.Trim()) && string.IsNullOrEmpty(txt_InnerboxSeparator.Text.Trim()) && string.IsNullOrEmpty(txt_OuterboxSeparator.Text.Trim()) && string.IsNullOrEmpty(txt_StartpositionOfInner.Text.Trim()) && string.IsNullOrEmpty(txt_StartpositionOfOuter.Text.Trim()) && string.IsNullOrEmpty(txt_Template.Text.Trim())) throw new Exception("注册值不可以都为空!!"); //判断重复 string sql = string.Format(@"select * from tb_HandLabel_Config where Cust='{0}' and Template='{1}' and InnerboxSeparator='{2}' and StartpositionOfInner='{3}' and EndpositionOfInner='{4}' and OuterboxSeparator='{5}' and StartpositionOfOuter='{6}' and EndpositionOfOuter='{7}' ", txt_Cust.Text.Trim(), txt_Template.Text.Trim(), txt_InnerboxSeparator.Text.Trim(), txt_StartpositionOfInner.Text.Trim(), txt_EndpositionOfInner.Text.Trim(), txt_OuterboxSeparator.Text.Trim(), txt_StartpositionOfOuter.Text.Trim(), txt_EndpositionOfOuter.Text.Trim()); if (sqlLink.cmdSelect(srvSI, dbsSI, sql).Rows.Count > 0) { throw new Exception("存在重复的数据!"); } //执行insert sql = @"insert tb_HandLabel_Config(Cust,Template,InnerboxSeparator,StartpositionOfInner,EndpositionOfInner,OuterboxSeparator,StartpositionOfOuter,EndpositionOfOuter,CreatedBy,CreateTime) values('" + txt_Cust.Text.Trim() + @"','" + txt_Template.Text.Trim() + "','" + txt_InnerboxSeparator.Text.Trim() + @"','" + txt_StartpositionOfInner.Text.Trim() + "','" + txt_EndpositionOfInner.Text.Trim() + "','" + txt_OuterboxSeparator.Text.Trim() + @"','" + txt_StartpositionOfOuter.Text.Trim() + "','" + txt_EndpositionOfOuter.Text.Trim() + "','" + user_id + "',GETDATE())"; sqlLink.cmdTransaction(srvSI, dbsSI, sql); Query_Click(null, null); showTip("新增成功!"); } catch (Exception ex) { showTip(ex.Message); } } /// <summary> /// [C2212108] 查询 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Query_Click(object sender, EventArgs e) { try { cleanView(); string sql = string.Empty; if (string.IsNullOrEmpty(txt_Cust.Text.Trim()) && string.IsNullOrEmpty(txt_EndpositionOfInner.Text.Trim()) && string.IsNullOrEmpty(txt_EndpositionOfOuter.Text.Trim()) && string.IsNullOrEmpty(txt_InnerboxSeparator.Text.Trim()) && string.IsNullOrEmpty(txt_OuterboxSeparator.Text.Trim()) && string.IsNullOrEmpty(txt_StartpositionOfInner.Text.Trim()) && string.IsNullOrEmpty(txt_StartpositionOfOuter.Text.Trim()) && string.IsNullOrEmpty(txt_Template.Text.Trim())) { sql = "select * from tb_HandLabel_Config"; } else { //构建查询sql sql = "select * from tb_HandLabel_Config where 1=1"; sql += bulidString("Cust", txt_Cust.Text); sql += bulidString("Template", txt_Template.Text); sql += bulidString("InnerboxSeparator", txt_InnerboxSeparator.Text); sql += bulidString("StartpositionOfInner", txt_StartpositionOfInner.Text); sql += bulidString("EndpositionOfInner", txt_EndpositionOfInner.Text); sql += bulidString("OuterboxSeparator", txt_OuterboxSeparator.Text); sql += bulidString("StartpositionOfOuter", txt_StartpositionOfOuter.Text); sql += bulidString("EndpositionOfOuter", txt_EndpositionOfOuter.Text); } DataTable dt = sqlLink.cmdSelect(srvSI, dbsSI, sql); if (dt.Rows.Count > 0) { gv.DataSource = dt; gv.DataBind(); ViewState["dt"] = dt; DataTable dtTmp = (DataTable)ViewState["dt"]; showTip("查询成功!"); } else { gv.DataSource = null; gv.DataBind(); ViewState["dt"] = null; } } catch (Exception ex) { showTip(ex.Message); } } /// <summary> /// [C2212108] 清空注册查询界面 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Clear_Click(object sender, EventArgs e) { try { txt_Cust.Text = string.Empty; txt_EndpositionOfInner.Text = string.Empty; txt_EndpositionOfOuter.Text = string.Empty; txt_InnerboxSeparator.Text = string.Empty; txt_OuterboxSeparator.Text = string.Empty; txt_StartpositionOfInner.Text = string.Empty; txt_StartpositionOfOuter.Text= string.Empty; txt_Template.Text = string.Empty; cleanView(); } catch (Exception ex) { showTip(ex.Message); } } /// <summary> /// [C2212108] 清空注册内外箱比对界面 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Clear_Click1(object sender, EventArgs e) { try { txt_Cust2.Text = string.Empty; ddl_Template.SelectedValue = string.Empty; txt_Inner.Text = string.Empty; txt_Outer.Text = string.Empty; lb_Msg.Text = string.Empty; ViewState["dt_info"] = null; } catch (Exception ex) { showTip(ex.Message); } } /// <summary> /// [C2212108] 显示错误 /// </summary> /// <param name="s"></param> private void showTip(string s) { lb_Msg.Text = s; } //清空页面 private void cleanView() { lb_Msg.Text = ""; gv.DataSource = null; gv.DataBind(); ViewState["dt"] = null; } /// <summary> /// [C2212108] 构造where的字符串 /// </summary> /// <param name="key"></param> /// <param name="value"></param> /// <returns></returns> private string bulidString(string key, string value) { if (string.IsNullOrEmpty(value.Trim())) { return string.Empty; } if (value.Contains("*")) { return " and " + key + " like '" + value.Replace("*", "%").Trim() + "'"; } else { return " and " + key + " = '" + value.Trim() + "'"; } } /// <summary> /// [C2212108] 绑定修改和删除权限 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void gv_RowDataBound(object sender, GridViewRowEventArgs e) { try { if (((Boolean)dt_auth.Rows[0]["Del"])) { if (((LinkButton)e.Row.FindControl("LinkButtonDelete")) != null) { LinkButton lbDelete = (LinkButton)e.Row.FindControl("LinkButtonDelete"); lbDelete.Visible = true; } } if (((Boolean)dt_auth.Rows[0]["Mod"])) { if (((LinkButton)e.Row.FindControl("LinkButtonEdit")) != null) { LinkButton lbEdit = (LinkButton)e.Row.FindControl("LinkButtonEdit"); lbEdit.Visible = true; } } } catch (Exception err) { showTip(err.Message); } } /// <summary> /// [C2212108] 确认修改 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void gv_RowEditing(object sender, GridViewEditEventArgs e) { gv.EditIndex = e.NewEditIndex; if (ViewState["dt"] != null) { gv.DataSource = (DataTable)ViewState["dt"]; gv.DataBind(); } } /// <summary> /// [C2212108] 取消修改 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void gv_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { try { gv.EditIndex = -1; if (ViewState["dt"] != null) { gv.DataSource = (DataTable)ViewState["dt"]; gv.DataBind(); } } catch (System.Exception err) { showTip(err.Message); } } /// <summary> /// [C2212108] 修改 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void gv_RowUpdating(object sender, GridViewUpdateEventArgs e) { gv.EditIndex = -1; if (ViewState["dt"] != null) { try { DataTable dt = (DataTable)ViewState["dt"]; bool bl = true; string[] s_col = new string[dt.Columns.Count]; string where_str = " 1=1"; string str1 = ""; string str2 = ""; string str3 = ""; string str4 = ""; string l_msg = ""; string sql = string.Empty; row_count = gv.PageIndex * 20 + e.RowIndex; for (int i = 0; i < dt.Columns.Count - 2; i++) { s_col[i] = ((System.Web.UI.WebControls.TextBox)gv.Rows[e.RowIndex].Cells[i].Controls[0]).Text.Trim(); if (s_col[i] != dt.Rows[row_count][i].ToString().Trim()) bl = false; } for (int i = 0; i < dt.Columns.Count - 4; i++) { string dataIndex = dt.Columns[i].ColumnName; where_str += " AND " + dataIndex + " = '" + s_col[i] + "'";//新数据 str1 += dataIndex + " = '" + s_col[i] + "',";//新数据 str4 += dataIndex + " = '" + s_col[i] + "' AND "; if (dt.Rows[row_count][i].ToString() != null && dt.Rows[row_count][i].ToString() != "") { str2 += " AND " + dataIndex + " = '" + dt.Rows[row_count][i].ToString().Trim() + "'";//旧数据 str3 += dataIndex + " = '" + dt.Rows[row_count][i].ToString().Trim() + "',";//旧数据 } } sql = "SELECT * FROM tb_HandLabel_Config WHERE" + where_str; if (sqlLink.cmdSelect(srvSI, dbsSI, sql).Rows.Count > 0) { throw new DataException("系統中已存在相同的资料,请确认!!"); } sql = "UPDATE tb_HandLabel_Config SET " + str1.Substring(0, str1.Length - 1) + ",ModifiedBy='"+user_id+ "',ModifiedTime=Getdate() WHERE Cust = '" + dt.Rows[row_count]["Cust"].ToString().Trim() + "' and Template='"+ dt.Rows[row_count]["Template"].ToString().Trim() + "'" + str2 + "; "; sqlLink.cmdTransaction(srvSI, dbsSI, sql); DataTable dtTmp = sqlLink.cmdSelect(srvSI, dbsSI, "select * from tb_HandLabel_Config where " + str4.TrimEnd().Substring(0, str4.TrimEnd().Length-3) + " AND ModifiedBy='" + user_id + "'"); dt.Rows[row_count].Delete(); dt.Rows.Add(dtTmp.Rows[0].ItemArray); dt.AcceptChanges(); Query_Click(null, null); showTip("修改成功!!"); l_msg = "Before:" + str3.Substring(0, str3.Length - 1).Replace('\'', ' ') + " ,registrant = " + dt.Rows[row_count]["CreatedBy"] + ",registrationTime=" + dt.Rows[row_count]["CreateTime"] + "),Update:(" + str1.Substring(0, str1.Length - 1).Replace('\'', ' ') + ",updateUser=" + user_id + ",updateTime=" + System.DateTime.Now.ToString() + ")"; InsertLog(l_msg,"修改数据"); //Update ViewState gv.DataSource = (DataTable)ViewState["dt"]; gv.DataBind(); } catch (System.Exception err) { showTip(err.Message); if (ViewState["dt"] != null) { gv.DataSource = (DataTable)ViewState["dt"]; gv.DataBind(); } } } } /// <summary> /// [C2212108] 删除 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void gv_RowDeleting(object sender, GridViewDeleteEventArgs e) { gv.EditIndex = -1; if (ViewState["dt"] != null) { try { row_count = gv.PageIndex * 20 + e.RowIndex; DataTable dt = (DataTable)ViewState["dt"]; DataRow dr = dt.Rows[row_count]; string where_str = "", where_str1 = string.Empty; for (int i = 0; i <= dt.Columns.Count - 4; i++) { string dataIndex = dt.Columns[i].ColumnName; string dataValue = dt.Rows[row_count][dataIndex].ToString(); where_str += string.Format("{0} = '{1}' and ", dataIndex, dataValue); where_str1 += string.Format("{0} = {1} and ", dataIndex, dataValue); } where_str = where_str.Substring(0, where_str.Length - 4); where_str1 = where_str1.Substring(0, where_str1.Length - 4); string sql = string.Format("delete from tb_HandLabel_Config where {0};", where_str); int num = sqlLink.cmdTransaction(srvSI, dbsSI, sql); if (num > 0) { sqlLink.cmdTransaction(srvSI, dbsSI, sql); Query_Click(null, null); showTip("删除成功,总共有" + num + "条数据被删除。"); string l_msg = where_str1 + "and DeleteUser=" + user_id; InsertLog(l_msg,"删除数据"); } else { throw new Exception("删除失败!"); } } catch (Exception ex) { showTip(ex.Message); } } } protected void gv_PageIndexChanging(object sender, GridViewPageEventArgs e) { try { gv.EditIndex = -1; if (ViewState["dt"] != null) { gv.PageIndex = e.NewPageIndex; gv.DataSource = ViewState["dt"] as System.Data.DataTable; gv.DataBind(); } else { showTip("Error Message : 资源已被系统回收,请重新查询数据,谢谢"); } } catch (System.Exception err) { showTip(err.Message); } } /// <summary> /// [C2212108] by客户别查询所有注册模式 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void txt_Cust2_TextChanged(object sender, EventArgs e) { string sql = string.Empty; DataTable dt_info; DataTable dt_template; try { sql = "select * from tb_HandLabel_Config where Cust like '" + txt_Cust2.Text.Trim().Replace("*", "%") + "'"; dt_info = sqlLink.cmdSelect(srvSI, dbsSI, sql); sql = "select distinct Template from tb_HandLabel_Config where Cust like '" + txt_Cust2.Text.Trim().Replace("*", "%") + "'"; dt_template = sqlLink.cmdSelect(srvSI, dbsSI, sql); if (dt_info.Rows.Count <= 0) throw new Exception("该客户别还未注册!!"); else { ViewState["dt_info"] = dt_info; ddl_Template.DataSource = dt_template; ddl_Template.DataTextField = "Template"; ddl_Template.DataBind(); ddl_Template.Items.Insert(0, ""); } } catch (Exception err) { showTip(err.Message); } } protected void ddl_Template_SelectedIndexChanged(object sender, EventArgs e) { try { if (string.IsNullOrEmpty(txt_Cust2.Text.Trim())) throw new Exception("请输入客户别!!"); } catch(Exception err) { showTip(err.Message); } } /// <summary> /// [C2212108] 插入操作日志 /// </summary> /// <param name="l_azo05"></param> /// <param name="l_azo06"></param> protected void InsertLog(string l_azo05, string l_azo06) { string sql = string.Empty; try { sql = "insert azo_file(azo01,azo02,azo03,azo05,azo06)" + " values('csrC591','" + user_id + "',GetDate(),'" + l_azo05 + "','"+ l_azo06 + "'); "; sqlLink.cmdTransaction(srv, dbs, sql); } catch (Exception err) { showTip(err.Message); } } /// <summary> /// [C2212108] 比对 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Submit_Click(object sender, EventArgs e) { try { if (ViewState["dt_info"] != null) { if (string.IsNullOrEmpty(ddl_Template.SelectedValue.ToString())) throw new Exception("请下拉选择模板!!"); DataTable dt_info = (DataTable)ViewState["dt_info"]; DataRow[] dr_infos = dt_info.Select("Template='" + ddl_Template.SelectedValue.ToString() + "'"); dt_info = dr_infos.CopyToDataTable(); int j; for (j = 0; j < dt_info.Rows.Count; j++) { DataRow dr_info = dt_info.Rows[j]; char l_InnerboxSeparator = char.Parse(dr_info["InnerboxSeparator"].ToString()); int l_StartpositionOfInner = int.Parse(dr_info["StartpositionOfInner"].ToString()); int l_EndpositionOfInner = int.Parse(dr_info["EndpositionOfInner"].ToString()); char l_OuterboxSeparator = char.Parse(dr_info["OuterboxSeparator"].ToString()); int l_StartpositionOfOuter = int.Parse(dr_info["StartpositionOfOuter"].ToString()); int l_EndpositionOfOuter = int.Parse(dr_info["EndpositionOfOuter"].ToString()); string[] arrInner = txt_Inner.Text.Trim().Split(l_InnerboxSeparator); string sInner = string.Empty; for (int i = l_StartpositionOfInner; i <= l_EndpositionOfInner - 1; i++) { sInner += arrInner[i] + " "; } sInner = sInner.TrimEnd(l_InnerboxSeparator); string[] arrOuter = txt_Outer.Text.Trim().Split(l_OuterboxSeparator); string sOuter = string.Empty; for (int i = l_StartpositionOfOuter; i <= l_EndpositionOfOuter - 1; i++) { sOuter += arrOuter[i] + " "; } sOuter = sOuter.TrimEnd(l_OuterboxSeparator); if (sInner.Equals(sOuter)) { continue; } else { showTip("内箱截取第" + l_StartpositionOfInner + "-" + l_EndpositionOfInner + "的字符串:" + sInner + ",外箱截取第" + l_StartpositionOfOuter + "-" + l_EndpositionOfOuter + "的字符串:" + sOuter + "。比对失败!"); Image1.Visible = true; Image1.ImageUrl = "/images/fail.jpg"; } } if (j == dt_info.Rows.Count && !(Image1.ImageUrl.Equals("/images/fail.jpg"))) { showTip("比对成功!"); Image1.Visible = true; Image1.ImageUrl = "/images/pass.jpg"; InsertLog("内箱:" + txt_Inner.Text.Trim() + ";外箱:" + txt_Outer.Text.Trim() + "", "内外箱比对"); } } } catch (Exception ex) { showTip(ex.Message); } } }
实际上只写了一个页面,但写了2个面板,实际展现的效果就好像写了2个页面
增删改查页面:
另一个业务页面:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)