1. 程式人生 > >Asp.Net GridView 在編輯狀態中使用動態Dropdownlist方法

Asp.Net GridView 在編輯狀態中使用動態Dropdownlist方法

 方法是半百度來的,但是這個方法很難再網路上找到,大部分網站搜尋出來都有很多問題.

首先鄙視下Gridview.FindControl("Id")方法,真的很難用啊! (我知道必須在行裡面找{e.Row.FindControl("Id")});

沒有詳細的研究,但是測試了半天了,總算出來了.

方案1:

      Gridview的RowCreated事件繫結資料!

      不能使用Gridview的RowCreated事件,會報錯說 資料繫結必須在資料繫結事件中進行!

方案2:

      Dropdownlist的DataBinding事件繫結資料!

      萬惡的Gridview.FindControl,和DataRow.FindControl都無法找到編輯

狀態的Dropdownlist,只能找到瀏覽狀態的Label

方案3:

      Gridview的RowDataBound事件繫結資料!

      絕對不行!在這個事件以前,Dropdownlist要被賦Gridview當前編輯項的值,但是Dropdownlist這個時候是空的,報錯找不到SelectedValue

總結上面方法  花了大半天時間....哎!!!

下面是研究的方法(方法算是半百度)

     (把GridView的列轉換為)

     為 Dropdownlist 指定 DataTextField="資料來源中的列" DataValueField="資料來源中的列" DataSource="<%# 定義在.cs檔案中的DataSet DataTable資料來源 可以是方法

 %>

     例子:

    

Ok 解決以上所有的問題