ページが開き、ユーザーがデータを編集/削除するためにロードされるグリッドが表示されLoadGrid()
ます!IsPostBack
。
private void LoadGrid()
{
try
{
using (var db = new dbDataContext())
{
var loadGrid = from t in db.tbl_Providers
where t.provider_Deleted == false
orderby t.provider_Name.ToLower()
select new
{
t.ProviderId,
t.provider_Name,
};
grd_Provider.DataSource = loadGrid;
grd_Provider.DataBind();
}
// Set value of Edit/Delete columns on grid
// ========================================
grd_Provider.HeaderRow.Cells[0].Text = "Edit/Update";
grd_Provider.HeaderRow.Cells[1].Text = "Delete";
}
catch (SystemException ex)
このコードはすべて正常に機能します。私がやろうとしているのはアルファベットを表示することで、ユーザーがリンクをクリックすると、新しいクエリが再読み込みされ、グリッドが読み込まれます。
私が知る限り、アルファベットは問題なく機能しています。コードをロードしていPage_Load
て、Voidメソッドはページのさらに下にあります。
for (char asciiValue = 'A'; asciiValue <= 'Z'; asciiValue++)
{
LinkButton lnkCharacter = new LinkButton();
lnkCharacter.ID = "lnkCharacter" + asciiValue;
lbl_Alphabet.Controls.Add(lnkCharacter);
lnkCharacter.CommandArgument = Convert.ToString(asciiValue);
lnkCharacter.Command += lnkCharacter_Command;
lnkCharacter.Text = Convert.ToString(asciiValue) + " ";
}
void lnkCharacter_Command(object sender, CommandEventArgs e)
{
try
{
var lbtn = (LinkButton) lbl_Alphabet.FindControl("lnkCharacter" + e.CommandArgument);
var id = lbtn.Text;
using (var db = new dbDataContext())
{
var query = from n in db.tbl_Providers
where n.provider_Name.StartsWith(id) && n.provider_Deleted == false
select new
{
id = n.ProviderId,
name = n.provider_Name
};
grd_Provider.DataSource = query;
grd_Provider.DataBind();
}
}
catch (SystemException ex)
{
var exceptionUtility = new genericExceptions();
exceptionUtility.genericSystemException(
ex,
Server.MachineName,
Page.TemplateSourceDirectory.Remove(0, 1) + Page.AppRelativeVirtualPath.Remove(0, 1),
ConfigurationManager.AppSettings["emailSupport"],
ConfigurationManager.AppSettings["emailFrom"],
string.Empty);
}
}
LINQPadでクエリをテストしましたが、動作して結果を返します。Datasource = query
私がページ上でそれを実行し、言うことをステップスルーするとexpanding the results will enumerate the query
。私はこれを行います..
Enumeration yielded no results
ページがリロードされ、グリッドが表示されませんか?これは、ページの読み込み時に元のグリッドが読み込まれていることと関係がありますか?
アルファベットをに変更しましIsPostBack
た。ページがリロードされ、アルファベットが消えても、グリッドは通常どおりロードされたままです。アルファベットクエリに別のグリッドビューが必要ですか?