2015-02-06 130 views
1

我有一個帶有GridView控件的asp頁面。網格視圖中的一列是一個下拉列表。在頁面加載事件中使用RowDataBound事件填充下拉列表。但是,列表中的某個選項在被選中時將彈出一個對話框,允許用戶將新項目添加到列表中,並且新添加的項目將成爲該下拉列表中的選定項目。這部分我工作正常,但我希望能夠將新項目添加到網格中每一行的下拉列表中。在某種程度上,我如何在頁面加載完成後重新綁定所有行中的下拉列表,而不必遍歷每個字段?ASP GridView和DropDownList

+0

是否所有下拉列表都從共同的共享數據源填充? – fnostro 2015-02-06 21:22:14

回答

0

如果所有的DDL都有一個共享的DataSource,那麼它應該只是在添加新的listitem後強制回發的問題。但你如何添加新的listitem?

如果您的彈出窗口只是簡單地將新的html <option>標記添加到html <select>標記,這與更新DDL數據源不是一回事。

對於所有的DDL來顯示新的listitem,你的彈出窗口將不得不執行一個回傳,更新DDL數據源和GridView中的所有DDL控件都需要反彈。

這回發假設DDL控件通過DataSourceID屬性連接到他們的數據源自動發生。如果你正在使用DataSource財產,那麼你將不得不調用DataBind()明確每個DDL控制,我認爲你說你在GridView RowDataBound事件都在做。

或者你遍歷所有的DDL控制客戶方,並添加相同的項目,以每個控制,但你會在下一次失去所有這些更改的頁面刷新,我不認爲這是你想要的。

+0

謝謝。我能夠將新值添加到共享數據源,並且所有列表都在Post Back上更新。要將該新值設置爲添加它的特定下拉列表的選定值,我必須將該值保留在隱藏字段中,然後可以在Postback和Databind()後訪問它。 – 2015-02-11 20:09:06