2011-01-12 4 views
1

バインドされたデータを表示することを拒否する頑強なデータグリッドビューがあります。 私はexhibgridviewという名前のグリッドビューを配置し、そのデータソースをnoneに設定しました。グリッドに列を返すことができるスタンドアロンのデータソースを追加しましたが、最初にグリッドに表示されるデータは、ドロップダウンリストから選択されるものに基づいています。下の写真からそれをチェックしてください。私はので、私は私のpage.csでこれを持っていたのSelectedIndexChangedメソッドを必要なように、基本的には、いくつかの項目は次のcaseidラベルおよびグリッドにドロップダウンリストから選択されるalt textDataGridViewが頑固に再生しています。ただバインドしない

は...それに応じて値を表示し

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     CreateDataSet(); 

      caseID = DropDownList1.SelectedItem.Value.Trim(); 

     DataView exhibitDataView = new DataView(exhibitDataSet.Tables[0]); 
     exhibitDataView.RowFilter = "FilingID = '" + caseID + "' "; 
     ExhibitGridView.DataSource = exhibitDataView; 
     ExhibitGridView.DataBind(); 
    } 
    private void CreateDataSet() 
    { 
     exhibitConnection.ConnectionString = 
     ExhibitListSqlDataSource.ConnectionString; 
     exhibitSqlDataAdapter.SelectCommand = new 
     SqlCommand(ExhibitListSqlDataSource.SelectCommand, exhibitConnection); 
     exhibitSqlDataAdapter.Fill(exhibitDataSet); 
    } 

コードが実行される甘い...私はいくつかのデータが実際に結合するために返されることを確認するようにブレークポイントを挿入し、...あなたは以下のスクリーンショットからそれを見ることができますがあります:までだった alt text

(ExhibitGridView .DataBind())。ですから、次のブロックを実行すると、データがバインドされてブラウザに表示されることが予想されますが、何らかの未知の理由でグリッドビューが頑固に動作しています。私はデータソースを直接指定しようとしましたが、pageloadで正常に表示されますが、それ以外の場合は応答しませんでした。

原因は何でしょうか?

答えて

0

私は、あなたがあなたのselectステートメントを提供しているパラメータでDataAdapterを提供する必要があると思います。見てみましょう。

私は、OleDBを使用している私のコードからあなたに例を与えました(読みやすさのためにすべてのオープン/クローズ接続を削除しました)。彼らは非常に似ています。

SqlCmd = "select * from App_Details WHERE App_Name LIKE @Var"; 

aCommand = new OleDbCommand(SqlCmd, aConnection); 
aCommand.Parameters.AddWithValue("@Var", value); 

OleDbDataAdapter dataAdapter = new OleDbDataAdapter(SqlCmd, aConnection); 
OleDbCommandBuilder cmdBuilder = new OleDbCommandBuilder(dataAdapter); 

// Now I do not see this part in your code right before you bind your data 
dataAdapter.SelectCommand.Parameters.AddWithValue("@Var", value); 
DataTable table = new DataTable(); 
dataAdapter.Fill(table); 
dgvSearchApp.DataSource = table; 
0

ポストバックイベントを確認してください。ページが2つのポストバックをしているのかもしれません。