2013-05-06 32 views
0

這是我的代碼...我只是嘗試搜索結果的名稱school.but網格視圖沒有顯示任何thing.my代碼我只是嘗試通過school.name的名稱搜索結果,但網格視圖沒有顯示任何東西

public void gridfill() 
{ 
    markSp spMark = new markSp(); 
    DataTable dtbl = new DataTable(); 
    dtbl = spMark.markViewAll(); 
    gvResult.DataSource = dtbl; 
    dtbl = spMark.markViewBySchool(txtSchoolName.Text); 
    gvResult.DataSource = dtbl;  
} 
protected void Button1_Click(object sender, EventArgs e) 
{ 
    gridfill(); 
} 
public DataTable markViewAll() 
{ 
    DataTable dtbl = new DataTable(); 
    SqlDataAdapter sqlda = new SqlDataAdapter("markViewAll", sqlcon); 
    sqlda.SelectCommand.CommandType = CommandType.StoredProcedure; 
    sqlda.Fill(dtbl); 
    return dtbl; 
} 
public DataTable markViewBySchool(string viewBySchool) 
{ 
    DataTable dtbClass = new DataTable(); 
    SqlDataAdapter sqlda = new SqlDataAdapter("markViewBySchool",sqlcon); 
    sqlda.SelectCommand.CommandType = CommandType.StoredProcedure; 
    sqlda.SelectCommand.Parameters.Add("@schoolName", SqlDbType.VarChar).Value = viewBySchool; 
    sqlda.Fill(dtbClass); 
    return dtbClass; 
} 

回答

2

如下的變化,也有你的代碼一些問題,爲什麼兩次數據綁定相同的GridView?即使你的數據綁定了兩次,它也只顯示你上次設置的內容。我已刪除的幾行代碼,你忘了打電話給gvResult.DataBind()以及

public void gridfill() 
{ 
    markSp spMark = new markSp(); 
    gvResult.DataSource = spMark.markViewBySchool(txtSchoolName.Text); 
    gvResult.DataBind(); 
} 
+0

+1進行重構。 – 2013-05-06 06:16:02

1

既然你已經標記與ASP.Net,你需要調用DataBind

gvResult.DataBind(); 

所以,你的方法是:

public void gridfill() 
{ 
    markSp spMark = new markSp(); 
    DataTable dtbl = new DataTable(); 
    dtbl = spMark.markViewAll(); //you are not using this anywhere 
    gvResult.DataSource = dtbl; // so you can get rid of these two lines 
    dtbl = spMark.markViewBySchool(txtSchoolName.Text); 
    gvResult.DataSource = dtbl;  
    gvResult.DataBind(); // This is missing 
} 

您應該看到:ASP.NET data binding overview

+0

** + 1 **我被秒 – 2013-05-06 06:11:50

+0

錯過感謝ü哈比布,現在我知道了,「新馬一個在ASP – jasel 2013-05-06 06:16:49

+0

@jasel ,不客氣,我想你是來自WinForm的背景,因爲那應該在那裏工作。 :) – Habib 2013-05-06 06:17:48

1
public void gridfill() 
{ 
     markSp spMark = new markSp(); 
    DataTable dtbl = new DataTable(); 
    dtbl = spMark.markViewAll(); 

    dtbl = spMark.markViewBySchool(txtSchoolName.Text); 
    gvResult.DataSource = dtbl; 
    gvResult.Databind(); // You forgot DataBind() 
    } 
相關問題