Using an editable grid with a LinqDatasource with a custom connection string and query
Binding to a custom datasource
Create a custom datacontext object connected to the database to be used;
private string _database; private SomeDataContext _dc; protected void Page_Load(object sender, EventArgs e) { _database = Common.GetRequestConnectionString(); _dc = new SomeDataContext(_database); }
Catch the contextcreating event on the datasource, and ovveride the ObjectInstance:
protected void LinqDataSource1_ContextCreating(object sender, LinqDataSourceContextEventArgs e) { e.ObjectInstance = _dc; }
Setting a custom query
Catch the Selecting event on the datasource to set a custom query:
protected void LinqDataSource1_Selecting(object sender, LinqDataSourceSelectEventArgs e) { string keyword = TextBoxTrefwoord.Text.ToLower(); if (string.IsNullOrEmpty(keyword)) keyword = "999999"; e.Result = from i18n in sometable where i18n.Term_nl.ToLower().IndexOf(keyword) != -1 select i18n; }
And to trigger the selection, use a button to have the gridview perform a databind.
protected void ButtonFilter_Click(object sender, EventArgs e) { GridView1.DataBind(); }