当GridView里面有一个删除按钮时,我用的是btndel 给他添加事件 btndel_Click 输出button run
再添加GridView1_RowCommand 方法 输出"RowCommand Run"
再添加GridView1_RowDeleting 方法 输出 "RowDeleting Run"
最后 执行页面,点击删除按钮 ,可见输出顺序是
button run
RowCommand Run
RowDeleting Run
所以我们在做删除的时候可以在用这三种事件完成,一般说来,第一种不太常用,也比较麻烦,
第二种 RowCommand里 添加e.CommandArgument 把ID传进去 可以进行删除处理
第三种RowDeleteing 可以直接删除,如果你没有用 数据源控件的话,不要用e.Keys,可以用GridView1.DataKeys[e.RowIndex].Value.ToString() 取得ID的值,后面就一样啦 ~_~
repeater 前后台代码执行顺序
在页面部分的代码是
<
asp:Repeater ID
=
"
repUndo
"
runat
=
"
server
"
OnItemDataBound
=
"
bindUndo
"
><
ItemTemplate
>
...
<
a href
=
"
todos_list.aspx
"
><%=
newTR
%>|
<%#newTR %>
<%
#ShowNum(Convert.ToInt64( Eval(
"
ITEMID
"
)))
%>
晚餐
</
a
>
...
</
ItemTemplate
></
asp:Repeater
>
后台代码
protected
int
newTR
=
0
;
protected
void
bindUndo(
object
sender, RepeaterItemEventArgs e)

{
//newTR = (newTR + 1) % 20;
newTR = newTR+200;
//DataBinder.Eval(e.Item.DataItem, "");
}

绑定
#region 绑定
protected string ShowNum(long id)

{
//newTR = newTR++;
return (++newTR).ToString();
}
#endregion
运行结果:
这说明了:
1.先执行了页面的 绑定方法 Eval() 方法 像在<%# ... %> 里面的东西
2.再执行后面绑定事件的方法 bindUndo 执行里面的方法.
3.页面统一输出变量: 就是指 <%=...%> 对变量里的东西进行输出
需要注意的是:
第一步是每绑定一条数据都会执行一次 第三步是页面执行完毕后输出
从上面的测试中,可以推断微软asp.net事件执行顺序的设计,先页面后后台,其实我想是先绑定页面的数据,然后触发事件,后台是触发事件引发的执行的方法