2012-04-11 9 views
0

uは私はコンボボックスでデータベース名を設定し、マスターページのコンボボックスで何ができるかを説明することができ、私は コードが の下コンボボックスの選択指数は

 sqlConn = New SqlConnection(strConn) 
     sqlConn.Open() 
     Dim sqlda1 As SqlClient.SqlDataAdapter 
     Dim sqlds1 As New DataSet 

     sqlQry = "EXEC sp_databases" 
     sqlda1 = New SqlDataAdapter(sqlQry, sqlConn) 
     sqlda1.Fill(sqlds1, "DataBaseList") 
     sqlConn.Close() 
     Session.Add("dscb", " ") 
     Session.Add("dscb", sqlds1.Tables("DataBaseList")) 

     Dim IntPCount As Integer 

     IntPCount = sqlds1.Tables("DataBaseList").Rows.Count 
     'IntPCount = Session("dscb") 
     Dim PCol As String 
     ' cbDataBaseList.Items.Clear() 
     cbDataBaseList.Items.Clear() 
     cbDataBaseList.Text = "Select" 

     For p = 0 To IntPCount - 1 
      PCol = sqlds1.Tables("DataBaseList").Rows(p).Item("DATABASE_NAME").ToString 
      If PCol.Length > 5 Then 
       If PCol <> "master" Or PCol <> "msdb" Or PCol <> "tempdb" Then 
        Dim strDataBaseName As String = PCol 
        strDataBaseName = strDataBaseName.Remove(4) 
        '*** Add only "Customer's" which got the prefix "CLT_ " *** 
        If strDataBaseName = "CLT_" Then 
         NewPCol = PCol.Replace("CLT_", "") 
         NewPCol.Trim() 
         'cbDataBaseList.Items.Add(NewPCol) 
         cbDataBaseList.Items.Add(NewPCol) 
        End If 
       End If 
      End If 
     Next 
       Session.Add("CMBID", "") 

     'cbDataBaseList.Text = NewPCol.ToString 

     sqlds1.Dispose() 
    Catch ex As Exception 
     strex = ex.Message 
     'MessageBox.Show(strex, "General form exception message 5.", MessageBoxButtons.OK, MessageBoxIcon.Error) 
      End Try 
     End If 
してみている子ページを呼び出すマスターページでセッションに入れ変更しました

選択指数は

セッション( "CMBID")イベントを変更= cbDataBaseList.Text

+0

何が問題ですか?子ページでセッション変数を取得していませんか? – ray

+0

yesマスターページが読み込まれ、テキストがデフォルトの "select"に変更されるたびに –

+0

セッションデータが別のページにリダイレクトされたときに子ページに入らない –

答えて

0

は、マスターページのためのPage_Load()関数上記のコードですか?はいの場合は、最初にチェックする必要があります

// Check if it has already been set. 
if(Session("CMBID") != null) 
{ 
// Now if it is set, get the value 
String cmbid = (String) Session("CMBID"); 
//Get the post back value of the combo box also 
String cmbval = Request["<your control name>"]; 
// Make the above code of setting the combo box value as a separate function 
FillComboBoxFromDB(); 
etif(!cmbval.Equals(cmbid)) 
{ 
    // set the session value with the new selected value 
    Session("CMBID") = cmbval 
} 


} 

これで、子ページに同じチェックインセッションとポストバック値を実行します。私はそれが設定される前に、子ページがセッション変数にアクセスしようとしているマスターページのコードを実行するのが少しの時間差であると思います。だから、セッションをチェックして、二重になるようにポストバックしてください。

関連する問題