GridVieW控件自定义删除按钮-解决多级相关中删除问题
2010-01-21 19:40
495 查看
最近做了一个计划管理系统,一级计划下面,还有二级、三级计划。当时就遇到一个问题,当删除某一级别的计划时,与它相关的信息到底是删还是不删呢?后来采取的方法就是只能从最低一级开始删,例如,当二级计划下,有三级计划时,二级计划就是不可删的;如果没有三级计划时,二级计划就成了最低一级,就可以删除。
这样,在用GridView控件显示计划信息时,就应该自定义一个删除按钮。首先判断这一级计划下,还有没有子计划,若有,删除按钮就是不可用的;若无,删除按钮就是可用的。
.aspx页面相关代码如下
.aspx.cs
这样,在用GridView控件显示计划信息时,就应该自定义一个删除按钮。首先判断这一级计划下,还有没有子计划,若有,删除按钮就是不可用的;若无,删除按钮就是可用的。
.aspx页面相关代码如下
<tr> <td style="height: 100%; width: 100%; text-align:center"> <asp:GridView ID="GvPro02" runat="server" AllowPaging="True" AutoGenerateColumns="False" OnRowDeleting="GvPro02_RowDeleting" OnRowDataBound="GvPro02_RowDataBound" OnRowUpdating="GvPro02_RowUpdating" OnPageIndexChanging="GvPro02_PageIndexChanging"> <Columns> <asp:BoundField DataField="ID" HeaderText="id" /> <asp:BoundField DataField="Pro02State" HeaderText="状态" /> <asp:BoundField DataField="Pro02ID" HeaderText="项目代码" /> <asp:BoundField DataField="Pro02Name" HeaderText="项目名称" /> <asp:BoundField DataField="Pro02Level" HeaderText="级别" /> <asp:BoundField DataField="Pro02Sort" HeaderText="类别" /> <asp:BoundField DataField="Pro02Director" HeaderText="负责人" /> <asp:BoundField DataField="Pro02FromTime" HeaderText="开始时间"/> <asp:BoundField DataField="Pro02PreEndTime" HeaderText="预计完成"/> <asp:BoundField DataField="Pro02RealEndTime" HeaderText="实际完成"/> <asp:TemplateField HeaderText="子项目"> <ItemTemplate > <asp:HyperLink ID="Pro03Enter" runat="server" Text='Enter' NavigateUrl ='<%# "~/ProTrdList.aspx?Fst_id="+Eval("Pro01ID") +"&Snd_id="+Eval("Pro02ID")%>'></asp:HyperLink> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> <asp:HyperLink ID="Pro02Dtl" runat="server" Text='Detail' NavigateUrl ='<%# "~/ProSndDtl.aspx?dtl_id="+Eval("ID") %>'></asp:HyperLink> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> <asp:LinkButton ID="LinkButtonUpdate" runat="server" CausesValidation="False" CommandName="Update" Text="Edit"></asp:LinkButton> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> <asp:LinkButton ID="LinkButtonDel" runat="server" CausesValidation="False" CommandName="Delete" Text="Delete"></asp:LinkButton> </ItemTemplate> </asp:TemplateField> </Columns> <HeaderStyle BackColor="Gray" Font-Bold="True" ForeColor="White" /> </asp:GridView><br> </td> </tr>
.aspx.cs
//删除模板列--当计划有子计划时,删除按钮不起作用。 public void GvPro02_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { LinkButton del = (LinkButton)e.Row.FindControl("LinkButtonDel"); string sqlPro02DelIf="select * from tbPro03 where Pro02ID='"+e.Row.Cells[2].Text.ToString()+"'"; SqlDataAdapter mydaPro02If=new SqlDataAdapter(sqlPro02DelIf,con); DataSet mydsPro02If=new DataSet(); mydaPro02If.Fill(mydsPro02If,"tbPro03"); con.Close(); if(mydsPro02If.Tables[0].Rows.Count != 0) { del.Enabled = false; //del.Attributes.Add("Enabled", "true");//不起作用 } else { del.OnClientClick="return confirm('确认要删除吗?')"; } } } //删除 protected void GvPro02_RowDeleting(object sender, GridViewDeleteEventArgs e) { string sqlPro02Del = "delete from tbPro02 where ID='" + GvPro02.DataKeys[e.RowIndex].Value.ToString() + "'"; sqlcom = new SqlCommand(sqlPro02Del, con); con.Open(); sqlcom.ExecuteNonQuery(); con.Close(); bind(); }
相关文章推荐
- GridView控件删除记录时出现索引超出范围问题的解决
- 关于ASP.NET中GridView控件中编辑和删除按钮布局问题
- GridView控件删除记录时出现索引超出范围问题的解决
- 解决ASP 2.0中GridView控件的删除、插入、编辑命令操作客户端确认问题的另一方法
- 解决ASP 2.0中GridView控件的删除、插入、编辑命令操作客户端确认问题的另一方法
- gridview中的自定义删除按钮的 CommandName不要等于“delete”。
- Android自定义GridView——解决和ScollView的滑动冲突问题
- 自定义View控件解决android文字排版和换行的问题
- ASP.NET web的自定义用户控件以及相关问题
- Gridview添加自定义删除按钮
- CListCtrl控件删除多个选中行时问题的解决
- GridView连接SQL Server 2005实现增加、更新、删除按钮时遇到的两个错误及解决办法
- 新浪微博开发八(自定义标题按钮,解决图片在文字右边的问题)
- ios软件开发 解决删除cell视图遮挡删除按钮的问题
- JQuery解决GridView控件翻页问题解决方案!
- GridView提交\插入数据\删除信息后字体变大问题的解决方法
- android 自定义ListView 使其带单选框按钮,并解决item点击不响应的问题
- GridView里面的内嵌的服务器控件如LinkButton如何自定义操作?(已经解决)
- 解决ios7.0 以后自定义导航栏左边按钮靠右的问题
- 解决SharePoint中GridView导出Excel按钮的问题