2013-07-02 43 views
0

我有一個用戶捕獲數據的網絡表單。這些數據會影響Gridview中的其他數據。我想正確使用DetailsView類型控件,如果數據在文本框中發生更改並且需要主數據更新的下拉菜單,則使「更新」按鈕可見。即使有數據,Gridview也會返回空。我想在gridview中使用數據來更新另一個數據庫

我在窗體上有一個gridview,當用戶點擊更新時,我想使用Gridview上的主鍵OrderId更新數據庫中的所有行。

如果我把代碼放在每個文本框和下拉框中,並調用一個名爲DoUpdate的例程,那麼這個例程就可以工作。然而,由於每次更改都會強制更新,所以我認爲最好是更新按鈕出現,然後用戶可以單擊該按鈕來更新。

當通過按鈕例程調用該例程時,雖然gridview沒有行。我認爲我需要findcontrol(gridview)或其他東西,但不知道該找什麼。

下面是在後臺按鈕事件中調用時的代碼,但gridview在調用時返回行計數0後面的按鈕部分代碼:

List<string> _OrderIds = new List<string>(); 

    foreach (GridViewRow gvr in gvOrderLines.Rows) 
    { 
    Label myOrderIDLablel = (Label)gvr.FindControl("lblOrderID"); //find control since it is a template field 
    _OrderIds.Add(myOrderIDLablel.Text); 
    } 

GridView控件在ASP頁面

<asp:GridView ID="gvOrderLines" runat="server" AutoGenerateColumns="False" 
     DataSourceID="odsOrderDetail" 
+0

使用GridViewCommandEventArgs並擁有命令名和操作...有關詳細信息,請參閱http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridviewcommandeventargs.commandsource.aspx –

+0

People對他們存在的網格視圖感到困惑,以顯示你想要下劃線數據源獲取數據的數據,我希望這有助於。 – Bit

回答

0

定義按我上面的評論你可能想要做的事,如:

List<string> _OrderIds = new List<string>(); 

    DataTable table = gvOrderLines.DataSource as DataTable; 

    foreach (GridViewRow gvr in table.Rows) 
    { 
    Label myOrderIDLablel = (Label)gvr.FindControl("lblOrderID"); //find control since it is a template field 
    _OrderIds.Add(myOrderIDLablel.Text); 
    } 

我希望這能讓你朝着正確的方向前進。

+0

嗨thansk的答案我越來越nyull數據表gvOrderlines仍然爲空。所以這是行不通的 – wassaza

+0

你怎麼得到你的gridview?你可以顯示你正在使用的活動gridview的代碼嗎? – Bit

+0

RE:GridViewCommandEventArgs我如何從按鈕控件訪問它?按鈕被按下,所以我得到標準EventArgs – wassaza

相關問題