I have this devexpress gridview:
<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 >">
</NextPageButton>
<PrevPageButton Text="< 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>
And the back end 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;
}
But when I try to filter: https://i.gyazo.com/16c57c6c4cba47897f08402c143ccaf1.gif
Nothing happens, no postback, nothing.
Do you know if I'm missing anything?
From given code, seems that your gridview bound at runtime using a parameterized stored procedure.
However, as page life cycle goes around the gridview does not cache actual data, thus you need to provide data every request or round-trips to the server.
Try these alternatives below to bind your gridview data:
// 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;
}
Note that ASPXGridView by default doesn't store data source information in the ViewState
because of performance issues regarding ViewState
in client-side compared to plain gridview server control, so that every page request needs a valid data source to bind with.
Reference: https://www.devexpress.com/Support/Center/Question/Details/K18183