无法在Gridview中的RowCommand上运行?

时间:2011-07-27 15:38:07

标签: asp.net gridview rowcommand

我的网页上有一个gridview。我是一个linkbutton专栏。 linkbutton列的commandName是“lbtnedit”,我想当我点击链接按钮时,另一个选项卡将通过加载ID显示Resume的详细信息,但是当我点击linkbutton时它不会遇到gvresume_OnRowCommand

提前致谢!

这是我的网格:

<asp:UpdatePanel ID="udpsubtabResumeList" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <div class="settingrow">
            <div class="gSDMS_Grid">
                <asp:GridView ID="gridViewResume" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None" Width="100%" 
                    AllowPaging="true" AllowSorting="true" AutoGenerateColumns="false" PageSize="10" PagerSettings-Position="Bottom" PagerStyle-HorizontalAlign="Right"
                    CssClass="css_grid" OnItemCommand="gvresume_OnRowCommand" EnableViewState="true"
                    >                        
                    <AlternatingRowStyle CssClass='AlternatingRowStyle' />
                    <EditRowStyle CssClass='EditRowStyle' />
                    <FooterStyle CssClass='FooterStyle' />
                    <HeaderStyle CssClass='HeaderStyle' />
                    <PagerStyle CssClass='PagerStyle' HorizontalAlign="Right" />
                    <RowStyle CssClass='RowStyle' />
                    <SelectedRowStyle CssClass='SelectedRowStyle' />
                    <Columns>
                    <asp:TemplateField HeaderText="Full Name" ItemStyle-CssClass="txt" SortExpression="Fullname">
                            <ItemTemplate><%#Eval("Fullname")%></ItemTemplate></asp:TemplateField>

                    <asp:TemplateField HeaderText="View" ItemStyle-CssClass="edit-del accept" ItemStyle-HorizontalAlign="Center">
                            <ItemTemplate><a class="edit"  href='<%# "/FutureEmployee/PostResume.aspx?&id=" + Eval("ResumeID") %>' title="Detail">&nbsp;</a>
                            </ItemTemplate></asp:TemplateField>
                    <asp:TemplateField HeaderText="Edit" ItemStyle-CssClass="edit-del accept">
                                <ItemTemplate><asp:LinkButton runat="server" ID="lbtnedit" Text="Edit" CommandName="edit_cmd" CommandArgument='<% #Eval("ResumeID") %>'></asp:LinkButton>
                            </ItemTemplate></asp:TemplateField>
                    </Columns>
                </asp:GridView>
            </div>
        </div>                       
    </ContentTemplate>
</asp:UpdatePanel>

这是事件

 protected void gvresume_OnRowCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName=="edit_cmd")
        {
            _id = new Guid(e.CommandArgument.ToString());
            Response.Redirect(SiteRoot + "/FutureEmployee/EmployeeTab.aspx#subTabViewResume");
        }
    }

编辑一个:

当我在这里使用firebug时,链接中的内容为:

href =“javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(”ctl00 $ aaaaaaa $ bbbbbbbbbbb“,”“false,”“,”; Clients.aspx“,false,true)

我觉得很好,如果:javascript:__ doPostBack('ctl00 $ mainContent $ gridViewResume','resumeID')但我不知道怎么做?

2 个答案:

答案 0 :(得分:1)

Asp:GridView没有事件OnItemCommand。

您应该使用 OnRowCommand 并更改处理程序的签名:

protected void gvresume_OnRowCommand(Object sender, GridViewCommandEventArgs e)
{
  if (e.CommandName == "edit_cmd")
  {

  }
}

答案 1 :(得分:0)

我通过删除页面中的所有验证来解决问题。