2016-07-06 6 views
0

Ich habe dieses DevExpress gridview:DevExpress aspxgridview nicht filtert

<dxwgv:ASPxGridView ID="ASPxGridView1" runat="server" DataSourceID="userDS" AutoGenerateColumns="False" Width="100%" KeyFieldName="contractId" > 
     <Styles> 
      <Header ImageSpacing="10px" SortingImageSpacing="10px"> 
      </Header> 
     </Styles> 
     <SettingsEditing Mode="EditForm" /> 
     <SettingsPager PageSize="39" ShowDefaultImages="False"> 
      <AllButton Text="All"> 
      </AllButton> 
      <NextPageButton Text="Next &gt;"> 
      </NextPageButton> 
      <PrevPageButton Text="&lt; Prev"> 
      </PrevPageButton> 
     </SettingsPager> 

     <Settings ShowFilterRow="True" ShowFilterRowMenu="true" /> 
     <Columns> 
      <dxwgv:GridViewCommandColumn VisibleIndex="0" Width="55px"> 
       <EditButton Visible="True"> 
       </EditButton> 
       <DeleteButton Visible="False"> 
       </DeleteButton> 
       <HeaderTemplate> 
       </HeaderTemplate> 
      </dxwgv:GridViewCommandColumn> 
      <dxwgv:GridViewDataTextColumn FieldName="contractId" ReadOnly="True" Visible="false" 
       VisibleIndex="1"> 
      </dxwgv:GridViewDataTextColumn> 
      <dxwgv:GridViewDataTextColumn FieldName="usergroupId" Caption="adult usergroupId" ReadOnly="true" VisibleIndex="2"> 
      </dxwgv:GridViewDataTextColumn> 
      <dxwgv:GridViewDataTextColumn FieldName="adultCode" Caption="educ. reg. code" VisibleIndex="3" ReadOnly="True" Visible="true"> 
      </dxwgv:GridViewDataTextColumn> 
      <dxwgv:GridViewDataTextColumn FieldName="accessLevel" VisibleIndex="3" ReadOnly="True" Visible="true"> 
       <Settings AutoFilterCondition="Like" /> 
      </dxwgv:GridViewDataTextColumn> 
      <dxwgv:GridViewDataTextColumn Settings-AllowAutoFilter="True" FieldName="adultId" ReadOnly="True" Caption="adult userId" Visible="true" 
       VisibleIndex="9"> 
      </dxwgv:GridViewDataTextColumn> 
      <dxwgv:GridViewCommandColumn ShowClearFilterButton="true" ShowApplyFilterButton="true" VisibleIndex="1" /> 
     </Columns> 

    </dxwgv:ASPxGridView> 

    <dxexport:ASPxGridViewExporter ID="gridExport" runat="server" GridViewID="ASPxGridView1"></dxexport:ASPxGridViewExporter> 

    <asp:SqlDataSource ID="userDS" runat="server" 
     ConnectionString="<%$ ConnectionStrings:connstring %>" 
     SelectCommand="GetAllUserAdultChildGroup" 
     OnDeleting="deleting" OnUpdating="updating"> 
    </asp:SqlDataSource> 

Und das hintere Ende Code:

protected void Page_Load(object sender, EventArgs e) 
     { 
      //change the db cx string for the SqlDataSource to more robust code 
      string connString = ConfigurationManager.ConnectionStrings["connstring"].ConnectionString; 

      userDS.ConnectionString = connString; 

      userDS.UpdateParameters.Add("modified", TypeCode.DateTime, DateTime.Now.ToString()); 
     } 

     protected void userDS_Selecting(object sender, SqlDataSourceSelectingEventArgs e) 
     { 

     } 
     protected void deleting(object sender, SqlDataSourceCommandEventArgs e) 
     { 
      string s = userDS.DeleteCommand; 
     } 
     protected void updating(object sender, SqlDataSourceCommandEventArgs e) 
     { 
      string s = userDS.UpdateCommand; 
     } 

Aber wenn ich versuche zu filtern: https://i.gyazo.com/16c57c6c4cba47897f08402c143ccaf1.gif

enter image description here

Nichts passiert, kein Postback, nichts.

Wissen Sie, ob mir etwas fehlt?

Danke, Laziale

Antwort

0

Aus gegebenem Code scheint, dass Ihre Gridview zur Laufzeit gebunden eine parametrisierte gespeicherte Prozedur.

Da der Seitenlebenszyklus jedoch umhergeht, speichert die Gridview keine tatsächlichen Daten, daher müssen Sie Daten für jede Anfrage oder für Round-Trips zum Server bereitstellen.

diese Alternativen Versuchen Sie unten Ihre Daten Gridview zu binden:

// use initialization method to bind data 
protected void Page_Init(object sender, EventArgs e) 
{ 
    ASPxGridView1.DataSource = userDS; 
    ASPxGridView1.DataBind(); 
} 

// use load method to bind data 
protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     ASPxGridView1.DataBind(); 
    } 
} 

// or place it on data binding method... 
protected void ASPxGridView1_DataBinding(object sender, EventArgs e) 
{ 
    ASPxGridView1.DataSource = userDS; 
} 

Beachten Sie, dass ASPXGridView von Standardinformationen speichert keine Datenquelle in den ViewState wegen Performance-Probleme in Bezug auf ViewState in Client-Seite im Vergleich zu einfachen gridview Serversteuerung, so dass jede Seitenanforderung eine gültige Datenquelle zum Binden benötigt.

Referenz: https://www.devexpress.com/Support/Center/Question/Details/K18183