2011-09-05 57 views
0

我在我的DeatilView控件中定義了一個InsertItemTemplate。在這個模板中,我有一些用戶填充的字段和一些自動填充的字段,用戶不能更改它們。這些值來自會話中存儲的對象。
代碼如下所示:(我只提必要的部分,如果你需要更多的東西讓我知道)ASP.NET DetailView InsertItemTemplate

<asp:DetailView ... DataSourceID="MyDataSource" ...> 
    <Fields> 
    ... 
    <InsertItemTemplate> 
     // These are the fields filled by the system 
     <asp:Label ... Text='<%# some value from session object %>' /> 
     <asp:Label ... Text='<%# some value from session object %>' /> 
     // some textboxes here that user fills, 
     //they use Bind("some data source value here") to send their data to database 
     ... 
    </InsertItemTemplate> 
    ... 
    </Fields> 
</asp:DetailView> 

現在的問題是,我需要真正的值插入數據庫。
正文發送文本框值,但由於我沒有綁定標籤值,因此它們不會發送到DataSource。所以我問如何做到這一點?

  • 我找到了一個替代方法是傳遞一個默認值到DataSet的 各自InsertParameter,但我不知道如何來填補這一領域 得到它從會話值。
  • 另一種方法是設置參數的值(不是默認值) 從會議,這是可能的,但這種只支持採取 值是直接在會話,而我通過內部的的 一個屬性的值存儲在Session中的對象。有沒有 方法來解決這個問題,除了直接在會話 中存儲值之外。

回答

0

你使用什麼類型的數據源?我需要知道它,因爲根據數據源的類型,從會話中獲取參數的方法很少。

+0

如果按類型表示DataSourceMode,那麼我沒有指定任何,我認爲默認情況下意味着DataSet模式。 – atoMerz

+0

不,我的意思是SqlDataSource,ObjecDataSource,LinqDataSource等。 – boades

+0

或者你從代碼隱藏中設置deatails視圖的DataSource對象? – boades

0

detailView_ItemInserting(object sender, DetailsViewInsertEventArgs e)在插入數據之前被調用,您可以在此事件中使用detailView.FindControl方法來訪問Label控件。

+0

是的,我已經嘗試過,但問題是該:MyDataSource.InsertParamers [我]沒有一個名爲值的屬性。所以我不知道如何指定它的價值。 – atoMerz