GridView的 PreRender事件与范例--GridView + CheckBox,点选多列资料(复选删除)

之前有一个范例,相同的结果可以用两种作法来实践 

[GridView] 资料系结表达式?或是RowDataBound事件来作?

 

我觉得这种教学方法很不错,「同一个题目,有多种解法

      (如同下面的李小龙图片所说的,"熟练度"很重要)

学生反应比较热烈,也可以挑自己惯用的、自己(目前程度)学得会的方式来处理

想要当个职场成功者,李小龙的精神你该学学!http://buzzorange.com/vidaorange/2015/07/17/bruce-jun-fan-lee-quote/

(点选图片,可连到原文)

 

有位读者想要知道 控件的 PreRender事件

为什么上网找「GridView合并域、合并相同记录」都是在 GridView的 PreRender事件完成呢?

 

我们先做几个范例,然后再来看看MSDN网站的说明

先「做」再「学」,希望让您比较好理解。

 

 

 

把以前的范例,改用 GridView  的 PreRender事件来做

[习题] FindControl 简单练习--GridView + CheckBox,点选多列数据(复选删除)#1 简单版

[习题] FindControl 简单练习--GridView + CheckBox,点选多列数据(复选删除) #2 - 分页&范例下载

 

原先的范例,在书本上集(ASP.NET专题实务(I) / 松岗出版)第十章就有解说

 

您先看一下 YouTube影片,大致了解我们要做的内容:

YouTube影片教学  https://youtu.be/LnYXiyQghKs


 

Q:  在 GridView里面,每一列数据都加上 CheckBox,

     被勾选的那一列,就要删除之。 

 

把原本 RowDataBound事件改成 PreRender事件来做,有两大修改:

第一,RowDataBound事件里面,那一段 if (e.Row.RowType)判别式消失了

      所以必须自己写一段 for 循环

 

第二,使用到 e.Row......的地方,改成 GridView1.Rows[i]即可

 

    protected void GridView1_PreRender(object sender, EventArgs e)

    {
        if(Session["delete_ID"].ToString() != ......)
        {
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                CheckBox myCheckbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
 
                Label myID = (Label)GridView1.Rows[i].FindControl("Label1");
                //.....后续省略.....直接套用以前范例即可
            }
 
        }
    }
 

=========================================================================

完成后,我们来看 MSDN网站的说明 -- 控件的 PreRender事件

...... 在 Control 对象加载之后  但在呈现之前发生。

 

做过几个范例以后,对于原厂的说明,会不会比较「有感」?

      所以,要靠实作、范例来「体会」,必须自己练!自己动手!自己设计情境!

      不能只看书、看文字....... 这不是在应付学校的考试?不是 写考卷 的"是非题、选择题、申论题"

 

东西「写」不出来就惨了,

      老板跟客户不在乎我们学校成绩有多好,他要看见程序「正确运作」的结果

 

=========================================================================

如果一个答案,您有 "多种"解法可以处理

恭喜!出师了!

 

类似范例:

GridView的 PreRender事件与范例-- [Case Study]成绩低于60分就出现红字 & 分数加总(累加)

 

转载于:https://www.cnblogs.com/mis2000lab/p/5067339.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现这个功能,你需要按照以下步骤: 1. 在GridView中添加一个列来显示checkbox。 2. 在你的C#代码中,为GridView的RowDataBound事件添加一个事件处理程序,来设置checkbox的初始状态。 3. 当用户勾选或取消某个checkbox时,在GridView的RowCommand事件处理程序中,根据checkbox的状态来动态添加或删除相应的y轴。 以下是具体的代码实现: 1. 在GridView中添加一个列来显示checkbox。 ```aspx <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowDataBound="GridView1_RowDataBound" OnRowCommand="GridView1_RowCommand"> <Columns> <asp:TemplateField> <HeaderTemplate> <asp:CheckBox ID="chkSelectAll" runat="server" OnClick="CheckAllCheckBoxes(this);" /> </HeaderTemplate> <ItemTemplate> <asp:CheckBox ID="chk" runat="server" /> </ItemTemplate> </asp:TemplateField> <asp:BoundField DataField="x" HeaderText="x轴" /> <asp:BoundField DataField="y1" HeaderText="y轴1" /> <asp:BoundField DataField="y2" HeaderText="y轴2" /> </Columns> </asp:GridView> ``` 2. 在你的C#代码中,为GridView的RowDataBound事件添加一个事件处理程序,来设置checkbox的初始状态。 ```csharp protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { CheckBox chk = (CheckBox)e.Row.FindControl("chk"); if (chk != null) { chk.Checked = false; // 初始状态为未勾选 } } } ``` 3. 当用户勾选或取消某个checkbox时,在GridView的RowCommand事件处理程序中,根据checkbox的状态来动态添加或删除相应的y轴。 ```csharp protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "Select") { int index = Convert.ToInt32(e.CommandArgument); GridViewRow row = GridView1.Rows[index]; CheckBox chk = (CheckBox)row.FindControl("chk"); if (chk.Checked) { // 添加一条y轴 string yFieldName = "y" + (GridView1.Columns.Count - 1); Series series = new Series(yFieldName); Chart1.Series.Add(series); series.ChartArea = "ChartArea1"; series.ChartType = SeriesChartType.Line; series.BorderWidth = 2; series.Color = Color.Blue; series.YValueMembers = yFieldName; series.XValueMember = "x"; } else { // 删除一条y轴 string yFieldName = "y" + (GridView1.Columns.Count - 2); Series series = Chart1.Series[yFieldName]; Chart1.Series.Remove(series); } } } ``` 注意: 1. 以上代码中的Chart1是一个ASP.NET Chart控件,你需要在页面中添加一个Chart控件,并设置好它的数据源。 2. 以上代码中的CheckAllCheckBoxes函数是一个JavaScript函数,用来实现全选/取消全选功能,你需要在页面中添加这个函数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值