
是GridView的RowCommand事件,而不是BUTTON的CLICK事件。前提你这个按钮是在GridView的模板里。
然后点击按钮后就直接会触发RowCommand事件,就是这样啊。
如果成功了,记得加点分啊,刚才我是看你悬赏了30财富值才回答的。:)
我估计你刚才追问的时候肯定粘帖了很多代码,所以提问被删除了,郁闷~~~30财富值就这么没了,我打的那么多字也没了:(
备注:你可以在RowCommand事件里加断点,然后点击按钮来测试下就行了。
看来你的截图我想问下,你为什么要在后台根据模板类型来添加啊,前台手动添加不就行了?
这么做是为什么啊。。。
在ASP.NET中 有一个页面回传的特性 你只需要去判断当前 *** 作是否是回传就好了判断方式:if(!ispostback){
//这里面写的代码在回传的事后就不会执行了
}
后台程序就是这样,你需要将gridview绑定的函数独立出来 如gridbind()在执行linkbutton click事件后再调用一次 gridbind()
你先单独看看是否取到了e.commandArgument
commandArgument 也是需要绑定的。在前台中 gridview是模板化的,并绑定commandArgument
你在后台才能取到他的值。
----------------------------------------------------------------------------------------------------------
Gridview 获取行号或者此行某一列的数据 跳转到各自不同的页面
位置:把一个linkbutton先转化成模板
<asp:TemplateField HeaderText="link" ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="false"
CommandName="button" Text="Button" CommandArgument='<%# Container.DataItemIndex %>'
onclick="LinkButton1_Click"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
在Gridview_RowCommand 或者 RowDataBound函数中 写入
int j = Convert.ToInt32(e.CommandArgument)
LinkButton lb = (LinkButton)GridView1.Rows[j].FindControl("LinkButton1")
if (j == 0)
lb.PostBackUrl = "login.aspx"
if (j == 1)
lb.PostBackUrl = "Register.aspx"
根据不同行号 点击linkbutton跳转到不同的页面
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)