读书人

急GrieView行单击事件,该怎么解决

发布时间: 2012-01-21 21:31:43 作者: rapoo

急急急急急急急急急急急急急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){}
事件里你想怎么写就怎么写吧。。。

读书人网 >asp.net

热点推荐