gpt4 book ai didi

asp.net - 当我在 gridview 中进行排序时,会触发 Gridview RowCommand 事件

转载 作者:行者123 更新时间:2023-12-02 11:18:23 25 4
gpt4 key购买 nike

我陷入了一些异常问题。当我在 gridview 中进行排序时,它会触发该网格的 RowCommand 事件而不是排序事件。下面是我的 GridView 的 HTML 代码。

<asp:GridView ID="grdDefects" runat="server" AutoGenerateColumns="False"    OnPageIndexChanging="grdDefects_PageIndexChanging"
OnSorting="grdDefects_Sorting" OnRowCommand="grdDefects_RowCommand" AllowSorting="true">
<PagerSettings Mode="NumericFirstLast" FirstPageText="First" LastPageText="Last"
NextPageText="Next" PreviousPageText="Prev" />
<Columns>
<%--<asp:TemplateField HeaderText="Id" SortExpression="ReasonID" Visible="false">
<ItemTemplate>
<asp:Label ID="lblReasonID" runat="server" Text='<%# Bind("ReasonID") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>--%>
<asp:BoundField DataField="DefectId" HeaderText="Id" />
<asp:BoundField DataField="DefectName" HeaderText="Defect" sortExpression="DefectName" />
<asp:BoundField DataField="Department" HeaderText="Department Name" sortExpression="Department" />

<%-- <asp:ButtonField ControlStyle-CssClass="btns" ButtonType="Button" CommandName="Update"
Text="Edit" >
<ControlStyle CssClass="btns"></ControlStyle>
</asp:ButtonField>--%>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="editBtn" runat="server" Text="EDIT" CommandArgument='<%# Eval("DefectId") %>' CssClass="btns"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

//这是处理这些事件的代码。

protected void grdDefects_Sorting(object sender, GridViewSortEventArgs e)
{
try
{
if (ViewState["sortMode"] == null)
{
ViewState["sortMode"] = strSORT_DESC;
}
else if(ViewState["sortMode"]!=null)
{
if (ViewState["sortMode"].ToString().Equals("strSORT_ASC"))
ViewState["sortMode"] = strSORT_DESC;
else
ViewState["sortMode"] = strSORT_ASC;
}
//string strSortExpression = e.SortExpression;
ViewState["sortExpression"] = e.SortExpression;
sort();

}
catch (Exception ex)
{
throw ex;
}
}

protected void grdDefects_RowCommand(object sender, GridViewCommandEventArgs e)
{
try
{
int Id = Convert.ToInt32(e.CommandArgument);
Response.Redirect("AddDefect.aspx?Id=" + Id);
}
catch (Exception ex)
{

throw;
}
}

如何解决这个问题???

最佳答案

您是否尝试检查 grdDefects_RowCommand 中的 commandName

每当您单击 GridView 中的任何按钮时,无论是在标题中还是在普通行中,RowCommand 事件都会触发。只要在排序事件发生时阻止您的代码执行即可。

将代码从 RowCommand 事件移动到此 block 中

If (e.CommandName !="Sort")
{
}

关于asp.net - 当我在 gridview 中进行排序时,会触发 Gridview RowCommand 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6952256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com