急急急急急急急急急急急急急GrieView行单击事件
思路就是点击时通过__doPostBack执行服务器事件。
前台代码
<asp:TemplateField> <ItemTemplate>
<asp:Button
ID= "btnShowDetail "
runat= "server "
Text= ' <%# Eval( "fName ") %> '
CssClass= "btnNoBorder "
OnClick= "btnShowDetail_Click ">
</asp:Button>
</ItemTemplate> </asp:TemplateField>
后台
protected void gvFriendList_RowDataBound(object sender, GridViewRowEventArgs e)
{ if (gvr.RowType == DataControlRowType.DataRow)
{
Button btn = (Button)gvr.FindControl( "btnShowDetail ");
gvr.Attributes.Add( "onclick ", "__doPostBack( ' " + btn.ClientID + " ', ' '); ");
}
}
}
这是FF中查看生成的代码
<tr onclick= "__doPostBack( 'gvFriendList_ctl03_btnShowDetail ', ' '); ">
<td>
<input id= "gvFriendList_ctl03_ckBox " type= "checkbox " name= "gvFriendList$ctl03$ckBox " />
</td> <td>
<input type= "submit " name= "gvFriendList$ctl03$btnShowDetail " value= "朋友 " id= "gvFriendList_ctl03_btnShowDetail " class= "btnNoBorder " />
</td>
</tr>
为什么点击没效果呢
[解决办法]
up
[解决办法]
在gridview中不要使用按钮的单击事件,而使用gridview的RowCommand事件(需要设置按钮的CommandName属性)
<asp:TemplateField> <ItemTemplate>
<asp:Button
ID= "btnShowDetail "
runat= "server "
Text= ' <%# Eval( "fName ") %> '
CssClass= "btnNoBorder "
CommandName= "save ">
</asp:Button>
</ItemTemplate> </asp:TemplateField>
然后在gridview的RowCommand这样去判断是哪个按钮点击的
if(e.CommondName == "save ")
[解决办法]
以前我做的关于__doPostBack()的例子,你看有用你就改改:
HTML:
<Script language=javascript>
function linksort(cid)
{
//店面编号
if(cid== "linkbtn ")
{
__doPostBack( "LinkButton1 ", "LinkButton1_Click ");
}
}
</script>
<html>
...
<asp:BoundColumn DataField= "LinkCount " HeaderText= "...onClick= 'linksort(this.id) ' ">
</html>
------------------------------
后台C#在private void LinkButton1_Click(object sender, System.EventArgs e){}
事件里你想怎么写就怎么写吧。。。