2012-12-06 37 views
0

我已經在帶有標籤的GridView上創建。我已經寫存儲過程獲得的StatusCode標籤對象中的空值

SELECT StatusCode 
From TableName 

這條線的GridView

< ASP:標籤ID = 「lblStatusCode」 RUNAT = 「服務器」 可見= 「假」

文本=」 < %#的DataBinder.Eval(的Container.DataItem 「的StatusCode」)%>」 />

在的.cs這些行文件

Label lblStatusCode = (Label)row.FindControl("lblStatusCode"); 
objJV.Status = Convert.ToInt32(lblStatusCode.Text); 

但在lblStatusCode.Text它顯示NULL即使表中有值。

當我獨立執行存儲過程時,它會給出值。

//綁定功能

保護無效的Page_Load(對象發件人,EventArgs的){

 if (!IsPostBack) 
     { 
      BindJVJobValidationDetails(); 

     } 


    } 

保護無效BindJVJobValidationDetails(){

 JVSummary objJV = new JVSummary(); 

     DataSet dataJobValidation = new DataSet(); 

     if (SessionVariables.PERID != null) 
     { 

      dataJobValidation = objJV.GetjvTransaction(SessionVariables.PERID); 

      gvEmployee.DataSource = dataJobValidation; 
      gvEmployee.DataBind(); 

     } 

    } 

可能是什麼問題...?

+0

你需要解釋一下其中的代碼在你的CS那些線位於 – MVCKarl

+0

我已經寫上提交功能來存儲值到表點擊後GridView中按鈕的事件 – ANIL

+0

StatusCode列值不爲空。但是在lblStatusCode.Text中有空。 – ANIL

回答

0

將文本應用於頁面後面的控件後面的代碼運行。你不能在代碼中設置文本嗎?

編輯:您正在使用Container.DataItem設置頁面上標籤的值,即aspx/ascx,但是此值在後面的代碼運行後設置。基本上,當後面的代碼看起來控制它的文本屬性尚未設置。相反,向您的GridView添加DataRowBinding事件,並在後面的代碼中設置事件中的lblStatusCode.Text。

+0

我沒有找到你。你能解釋我嗎? – ANIL

+0

請參閱我的編輯。 – webnoob

+0

我將值綁定到GridView。你能看到我的編輯問題嗎?我已經粘貼了我的綁定函數 – ANIL

0

請嘗試gridview的情況下,本代碼 OnRowDataBound="GridView_RowDataBound"

protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     if ((e.Row.DataItem) != null) 
     { 
      Label lblStatusCode = (Label)e.row.FindControl("lblStatusCode"); 
      objJV.Status = Convert.ToInt32(lblStatusCode.Text); 
     } 
    } 
} 
+0

數據綁定正確。但是,當試圖從網格視圖獲取數據時,lblStatusCode.Text中的值爲null。 – ANIL

+0

我在我的朋友PC中執行了相同的代碼。並且lblStatusCode.Text中的值正確顯示。但在我的系統中顯示NULL值。 – ANIL