我google了很多次,但沒有任何有用的鏈接爲我的解決方案。我有AllwSorting =「true」和OnSort函數。今天我發佈這個問題,謝謝你的幫助。 這是我的ASCX:gridview中的排序事件未解僱
<asp:GridView ID="gvwCus" runat="server" CssClass="gridview" AlternatingRowStyle-CssClass="even" AutoGenerateColumns="false" GridLines="Vertical" AllowPaging="false" OnRowCommand="RowCommand" AllowSorting="true" OnSorting="gvwCus_OnSorting">
<Columns>
<asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="4%">
<HeaderTemplate>STT</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="lblId" runat="server" Text="<%#Container.DataItemIndex + 1%>"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderStyle-Width="12%" DataField="field1" HeaderText="Field1_Header" ItemStyle-HorizontalAlign="Left" HeaderStyle-HorizontalAlign="Center"/>
<asp:BoundField HeaderStyle-Width="30%" DataField="field2" HeaderText="Field2_Header" ItemStyle-HorizontalAlign="Left" HeaderStyle-HorizontalAlign="Center"/>
<asp:BoundField HeaderStyle-Width="31%" DataField="field3" HeaderText="Field3_Header" ItemStyle-HorizontalAlign="Left" HeaderStyle-HorizontalAlign="Center"/>
<asp:BoundField HeaderStyle-Width="20%" DataField="field4" HeaderText="Field4_Header" ItemStyle-HorizontalAlign="Left" HeaderStyle-HorizontalAlign="Center" />
<asp:CommandField HeaderStyle-Width="2%" ButtonType="Image" SelectImageUrl="~/Images/detail.png" ShowSelectButton="true" />
</Columns>
</asp:GridView>
而且我後面的代碼:ASCX.CS,我有一個排序事件gvwCus_OnSorting功能,但沒有任何事件的處理,當我點擊GridView控件的標題。
protected void gvwCus_OnSorting(object sender, GridViewSortEventArgs e)
{
DataBind(e);
}
private void DataBind(GridViewSortEventArgs eventArgs)
{
var dataOracle = new DataOracle();
var data = dataOracle.GetDataTable();
if(eventArgs != null)
{
data.DefaultView.Sort = eventArgs.SortExpression + " " + GetSortDirection(eventArgs.SortExpression);
}
gvwCustom.DataSource = data;
gvwCustom.DataBind();
}
private string GetSortDirection(string column)
{
string sortDirection = "DESC";
string sortExpression = ViewState["SortExpression"] as string;
if (sortExpression != null)
{
if (sortExpression == column)
{
string lastDirection = ViewState["SortDirection"] as string;
if ((lastDirection != null) && (lastDirection == "DESC"))
{
sortDirection = "ASC";
}
}
}
ViewState["SortDirection"] = sortDirection;
ViewState["SortExpression"] = column;
return sortDirection;
}
謝謝!!
你怎麼知道該事件不觸發? – NoChance
@EmmadKareem:我在gvwCus_OnSorting函數中加入了斷點。 – PhamMinh
那麼網格對數據進行排序,但事件並未發射?你的綁定代碼在哪裏? – NoChance