2011-09-23 92 views
0

是明確的尾行我使用的gridviewASP.Net)一個在頁腳dropdownlist行,我補上rowdatabound事件,第一次它工作正常,但當形式postbacked,下拉被清除。下拉列表中GridView控件回發

它可以通過在每次回發中重新填充來解決,但我希望只有單個時間碼綁定調用滿足我的需求, 意味着有任何方法可以在回發時停止爲空。

尋找你的一種解決方案,並提前建議 日Thnx ......

Supriya

代碼:

保護無效gvProjects_RowDataBound(對象發件人,GridViewRowEventArgs E) {

try 
    { 

     if (gvProjects.Rows.Count > 0 && e.Row.RowIndex != -1) 
     { 
      string proj_Id = Convert.ToString(gvProjects.DataKeys[e.Row.RowIndex].Value); 
      if (e.Row.RowType == DataControlRowType.DataRow) 
      { 
       DropDownList ddlProject = (DropDownList)e.Row.FindControl("ddlProject"); 
       if (ddlProject != null && ddlProject.Items.Count == 0) 
       { 
        objMaster.FillProjects(ddlProject); 
        ddlProject.SelectedValue = proj_Id; 
       } 
      } 

     } 
    } 
    catch (Exception excep) 
    { 
     lbl_msg.Text = excep.Message; 
    } 
} 

只要網格綁定就可以調用它,是否可以避免。

+0

向我們展示您的代碼工作。 – adatapost

回答

0

有了這個代碼,你會避免填滿位於各的RowDataBound GridView的頁腳中的下拉列表:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType != DataControlRowType.Footer) 
     { 
      //do the binding for the normal rows 
     } 
    } 

正如你所看到的,的RowDataBound將只在標題和正常行執行,但不在頁腳中。

希望這會有所幫助!

+0

感謝您的解決方案.... –

0
protected void Page_Load(object sender, EventArgs e) 
    {    
     if (!IsPostBack) 
     {    
      FillDropdown(); 
     } 
    } 
+0

Thnx,我只在Rowdatabound事件中有約束力!!!!!非常感謝........ –

+1

標記答案爲已接受的答案。 –