asp:GridView + SqlDataSource 增加,修改,删除的例子

本文详细介绍了ASP.NET中GridView控件的使用方法,包括如何设置控件样式、实现分页与排序功能、数据绑定及编辑操作等。此外,还展示了如何通过后台代码增强GridView的功能,如确认删除提示、下拉列表初始化等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前台:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
                DataSourceID="sdsModule" Width="99%" OnRowDataBound="GridView1_RowDataBound"
                BorderColor="#93BEE2" BorderStyle="None" BorderWidth="1px" BackColor="White"
                CellPadding="3" PageSize="14" AllowPaging="True" 
         AllowSorting="True" OnPageIndexChanging="GridView1_PageIndexChanging"
                OnRowCommand="GridView1_RowCommand" 
   DataKeyNames="moduleId,parentId">
                <SelectedRowStyle ForeColor="#CCFF99" BackColor="#009999" />
                <AlternatingRowStyle BackColor="#E8F4FF" />
                <RowStyle Wrap="false" />
                <HeaderStyle Wrap="false" ForeColor="White" BackColor="#337FB2"></HeaderStyle>
                <FooterStyle HorizontalAlign="Right" BackColor="#E8F4FF"></FooterStyle>
                <Columns>
                    <asp:TemplateField HeaderText="序号">
                        <ItemStyle HorizontalAlign="Center" />
                        <HeaderStyle HorizontalAlign="Center" Width="5%" />
                        <ItemTemplate>
                            <%# Container.DataItemIndex+1 %>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="文档名称" SortExpression="moduleName">
                        <ItemTemplate>
                            <asp:Label runat="server" ID="labname" Text='<%# Eval("moduleName") %>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox runat="server" ID="txtName" Width="100px" Text='<%# Eval("moduleName") %>'></asp:TextBox>
                             <asp:RequiredFieldValidator ID="rfvTxrqZyb" runat="server" ErrorMessage="不能为空"
                                ControlToValidate="txtName" Display="Dynamic"></asp:RequiredFieldValidator>
                        </EditItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="简称" SortExpression="jq">
                        <ItemTemplate>
                            <asp:Label runat="server" ID="labJq" Text='<%# Eval("jq") %>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox runat="server" ID="txtjq" Width="100px" Text='<%# Eval("jq") %>'></asp:TextBox>
                             <asp:RequiredFieldValidator ID="rfvjq" runat="server" ErrorMessage="不能为空"
                                ControlToValidate="txtjq" Display="Dynamic"></asp:RequiredFieldValidator>
                        </EditItemTemplate>
                    </asp:TemplateField>
                     <asp:TemplateField HeaderText="父模块">
                        <ItemTemplate>
                            <asp:Label ID="labParentId" runat="server" Text='<%#Eval("parentId") %>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:DropDownList runat="server" ID="parentList"  DataSourceID="sdsModule"   DataTextField="moduleName" DataValueField="moduleId" >
                            </asp:DropDownList>
                        </EditItemTemplate>
                    </asp:TemplateField>
                    <asp:CheckBoxField DataField="IsView" HeaderText="是否显示" SortExpression="IsView">
                        <ControlStyle Width="10%" />
                    </asp:CheckBoxField>
                    <asp:CheckBoxField DataField="IsGygl" HeaderText="是否属于工艺管理" SortExpression="IsGygl">
                        <ControlStyle Width="10%" />
                    </asp:CheckBoxField>
                    <asp:CheckBoxField DataField="IsCheJian" HeaderText="是否到车间" SortExpression="IsCheJian">
                        <ControlStyle Width="10%" />
                    </asp:CheckBoxField>
                    <asp:TemplateField HeaderText="类型">
                        <ItemTemplate>
                            <asp:Label ID="labTqjtZyb" runat="server" Text='<%#Eval("nianType") %>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:DropDownList runat="server" ID="typeList"  SelectedValue='<%#Eval("nianType") %>' >
                                <asp:ListItem Text="不分" Value="不分" ></asp:ListItem>
                                <asp:ListItem Text="年" Value="年" ></asp:ListItem>
                                <asp:ListItem Text="月" Value="月" ></asp:ListItem>
                                <asp:ListItem Text="" Value="" ></asp:ListItem>
                            </asp:DropDownList>
                        </EditItemTemplate>
                    </asp:TemplateField>
                     <asp:TemplateField HeaderText="排序" SortExpression="px">
                        <ItemTemplate>
                            <asp:Label runat="server" ID="labPx" Text='<%# Eval("px") %>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox runat="server" ID="txtPx" Width="50px" Text='<%# Eval("px") %>'></asp:TextBox>
                             <asp:RequiredFieldValidator ID="rfvPx" runat="server" ErrorMessage="不能为空"
                                ControlToValidate="txtPx" Display="Dynamic"></asp:RequiredFieldValidator>
                            <asp:RangeValidator ID="rvPx" runat="server" ErrorMessage="请输入整数" ControlToValidate="txtPx"   Display="Dynamic" MinimumValue="1"  MaximumValue="1000"  Type="Integer" ></asp:RangeValidator> 
                        </EditItemTemplate>
                    </asp:TemplateField>
                    <asp:CommandField HeaderText="修改" ShowEditButton="true" />
                    <asp:CommandField HeaderText="删除" ShowDeleteButton="true" />
                </Columns>
                <PagerStyle HorizontalAlign="Right" BackColor="#E8F4FF"></PagerStyle>
            </asp:GridView>
                <asp:SqlDataSource ID="sdsModule" runat="server" ConnectionString="<%$ ConnectionStrings:uds %>"
        DeleteCommand="DELETE FROM [module] WHERE [moduleId] = @moduleId" InsertCommand="INSERT INTO [module] ([moduleName],IsView,IsGygl,IsCheJian,nianType,jq,px,parentId) VALUES ( @moduleName,@IsView,@IsGygl,@IsCheJian,@nianType,@jq,@px,@parentId)"
        ProviderName="<%$ ConnectionStrings:uds.ProviderName %>" SelectCommand="select * from module "
        UpdateCommand="UPDATE [module] SET moduleName=@moduleName,IsView=@IsView,IsGygl=@IsGygl,IsCheJian=@IsCheJian,nianType=@nianType,jq=@jq,px=@px,parentId=@parentId  WHERE [moduleId] = @moduleId">
        <DeleteParameters>
            <asp:Parameter Name="moduleId" Type="Int32" />
            <asp:Parameter Name="moduleName" Type="String" />
        </DeleteParameters>
        <UpdateParameters>
            <asp:Parameter Name="moduleId" Type="Int32" />
            <asp:Parameter Name="moduleName" Type="String" />
            <asp:Parameter Name="IsView" Type="Boolean" />
            <asp:Parameter Name="IsGygl" Type="Boolean" />
            <asp:Parameter Name="IsCheJian" Type="Boolean" />
            <asp:Parameter Name="nianType" Type="String" />
            <asp:Parameter Name="jq" Type="String" />
             <asp:Parameter Name="px" Type="Int32" />
              <asp:Parameter Name="parentId" Type="Int32" />
        </UpdateParameters>
        <InsertParameters>
            <asp:Parameter Name="moduleName" Type="String" />
            <asp:Parameter Name="IsView" Type="Boolean" />
            <asp:Parameter Name="IsGygl" Type="Boolean" />
            <asp:Parameter Name="IsCheJian" Type="Boolean" />
            <asp:Parameter Name="nianType" Type="String" />
            <asp:Parameter Name="jq" Type="String" />
             <asp:Parameter Name="px" Type="Int32" />
             <asp:Parameter Name="parentId" Type="Int32" />
        </InsertParameters>
    </asp:SqlDataSource>


后台代码:

 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)
                {
                    ((LinkButton)e.Row.Cells[10].Controls[0]).Attributes.Add("onclick", "javascript:return confirm('确认要删除:\"" + e.Row.Cells[1].Text + "\"吗?')");
                }
                if ((e.Row.RowState & DataControlRowState.Edit) == DataControlRowState.Edit)
                {
                    DropDownList dtp = (DropDownList)e.Row.FindControl("parentList");
                    dtp.Items.Insert(0, new ListItem("--请选择--", ""));
                    string strParentId = this.GridView1.DataKeys[e.Row.RowIndex]["parentId"].ToString();
                    dtp.SelectedValue = strParentId;
                }
            }
        }




        /// <summary>
        /// 分页事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            this.GridView1.PageIndex = e.NewPageIndex;
            this.GridView1.DataBind();
        }




        /// <summary>
        /// 添加页面
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnAdd_Click(object sender, EventArgs e)
        {
            //插入
            bool bl = true;
            this.sdsModule.InsertParameters["moduleName"].DefaultValue = "";
            this.sdsModule.InsertParameters["jq"].DefaultValue = "";
            sdsModule.InsertParameters["IsView"].DefaultValue = bl.ToString();
            sdsModule.InsertParameters["IsGygl"].DefaultValue = bl.ToString();
            sdsModule.InsertParameters["IsCheJian"].DefaultValue = bl.ToString();
            sdsModule.InsertParameters["nianType"].DefaultValue = "不分";
            sdsModule.InsertParameters["px"].DefaultValue = "0";
            sdsModule.InsertParameters["parentId"].DefaultValue = "0";
            sdsModule.Insert();


            //插入日志
            UserLogAdd.AddUserLog(Server.UrlDecode(Request.Cookies["UserName"].Value), "插入", "文档模块", "一条名称为空的数据", Request.Cookies["departNumber"].Value);
        }


        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            string strCommandName = e.CommandName;
            string strdepartNumber = Request.Cookies["departNumber"].Value;
            if (strCommandName == "Delete")
            {
                //插入删除日志
                string strCaozuo = this.GridView1.Rows[Convert.ToInt32(e.CommandArgument)].Cells[1].Text;
                UserLogAdd.AddUserLog(Server.UrlDecode(Request.Cookies["UserName"].Value), "删除", "文档模块", "名称为 " + strCaozuo + " 的记录", strdepartNumber);
            }
            if (strCommandName == "Edit")
            {
                labOldValue.Text = ((Label)this.GridView1.Rows[Convert.ToInt32(e.CommandArgument)].Cells[1].Controls[1]).Text;


            }
            if (strCommandName == "Update")
            {
                //插入修改日志
                string strCaozuo = ((TextBox)this.GridView1.Rows[Convert.ToInt32(e.CommandArgument)].Cells[1].Controls[1]).Text.Trim();
                sdsModule.UpdateParameters["moduleName"].DefaultValue = ((TextBox)this.GridView1.Rows[Convert.ToInt32(e.CommandArgument)].Cells[1].Controls[1]).Text.Trim();
                sdsModule.UpdateParameters["jq"].DefaultValue = ((TextBox)this.GridView1.Rows[Convert.ToInt32(e.CommandArgument)].Cells[2].Controls[1]).Text.Trim();
                sdsModule.UpdateParameters["nianType"].DefaultValue = ((DropDownList)this.GridView1.Rows[Convert.ToInt32(e.CommandArgument)].Cells[7].Controls[1]).SelectedValue;
                sdsModule.UpdateParameters["px"].DefaultValue = ((TextBox)this.GridView1.Rows[Convert.ToInt32(e.CommandArgument)].Cells[8].Controls[1]).Text.Trim();
                sdsModule.UpdateParameters["parentId"].DefaultValue = ((DropDownList)this.GridView1.Rows[Convert.ToInt32(e.CommandArgument)].Cells[3].Controls[1]).SelectedValue;
                UserLogAdd.AddUserLog(Server.UrlDecode(Request.Cookies["UserName"].Value), "修改", "文档模块", "由 " + labOldValue.Text + " 改为 " + strCaozuo, strdepartNumber);
            }
        }

内容概要:本文档详细介绍了基于Python的在线二手电子产品回收系统的设计与实现。项目旨在通过构建一个可靠、安全、透明的平台,提高废旧电子产品的回收率,推动资源的合理再利用,提供安全可靠的交易平台,强环保意识,促进二手市场的发展,并实现数据驱动的智能化服务。项目面临的主要挑战包括废旧电子产品的检测与评估、信息不对称与交易风险、市场需求的预测与定价、用户体验优化及平台的安全性与数据保护。解决方案涵盖智能化评估与回收定价、高效的二手产品处理流程、完善的售后保障体系、创新的市场需求分析、全程透明化与安全性保障以及定制化用户体验。系统采用微服务架构,包括用户管理、商品评估、交易管理、数据分析、支付与结算等模块。项目还涉及前端界面设计、API接口开发、数据库设计与实现、模型训练与优化、部署与应用等方面。 适合人群:具备一定编程基础,特别是对Python和Web开发有一定了解的研发人员,以及对二手电子产品回收和环保事业感兴趣的从业者。 使用场景及目标:①帮助用户方便地将闲置电子产品回收、交易或再利用,提高废旧电子产品的回收率;②通过智能化的数据分析为用户提供价格评估、市场需求分析等服务,提高回收效率;③提供安全可靠的交易平台,确保交易的公平性和安全性;④推动二手市场的健康发展,为消费者提供经济实惠的产品选择;⑤增强公众的环保意识,推动社会向绿色、低碳方向发展。 其他说明:本文档不仅提供了系统的功能模块设计、数据库表结构、API接口规范,还展示了具体代码实现和GUI界面设计,为开发者提供了全面的技术参考。此外,项目强调了数据安全和隐私保护的重要性,确保平台在运行过程中能够有效保护用户信息。项目未来改进方向包括增强模型的精准度、拓展国际市场、提供更多支付和融资选项、跨平台数据集成与分析、更智能的回收流程以及强化社交化与社区功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

orangapple

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值