- PR -

GridView でDBをアタッチしないで変更などしたい

1
投稿者投稿内容
SL
大ベテラン
会議室デビュー日: 2008/05/02
投稿数: 183
投稿日時: 2008-09-14 19:21
度々の質問、お世話になります。

GridView でDBをアタッチしないで(データソースの選択で「なし」)下記のようにしてバインドしたときの Gridview の詳細の設定をしたいのですが、どうしたらできますか?
詳細とは、「タスク」内の列の編集でヘッダーの名前や「選択」というリンクボタンを追加したい。

コード:
SqlDataReader sqlreader;
sqlreader = sqlcmd2.ExecuteReader();
GridView1.DataSource = sqlreader;
GridView1.DataBind();



これは、前回教えていただいたhttp://www.sqlpassj.org/bunkakai/web/series/ado/04.aspx#c3
に紹介されている「検索処理」のコードを利用しDataGrid を GridViewに変更し作成しています。これ自身は、うまくいっているようですが、
  mainquery = "SELECT TOP " + 10 + " * FROM " + "(SELECT TOP " + (recCnt....
で呼んでいる名前がヘッダーに使われているようで任意のものに変更したいです。
また、そのカラムの幅も変更できればありがたいのですが。
教えてください。

ASP.NET C# VS2005
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2008-09-14 23:56
引用:
詳細とは、「タスク」内の列の編集でヘッダーの名前や「選択」というリンクボタンを追加したい。

ヘッダーの名前は左下の欄でフィールドを選択した状態で右側の欄のHeaderTextを変更、
幅はHeaderStyleのWidthを変更です。
選択ボタンの追加は左上の欄でCommandFieldの[選択]を選択して[追加]ボタンを押します。

それとも上記をコードからやりたいということですか?
それならヘッダはGridView1.HeaderRowを操作します。
選択ボタンの追加はGridViewのColumnsにShowSelectButtonがtrueなCommandFieldをAddします。
SL
大ベテラン
会議室デビュー日: 2008/05/02
投稿数: 183
投稿日時: 2008-09-15 10:14
お世話になります。

> それとも上記をコードからやりたいということですか?
はい、GridViewタスクから「データソースの選択で(なし)」を選ぶと「列の編集」にフィールド内に項目が表示されません。それでお聞きしました。
下記のようにすることで名前の変更ができました。
コード:
protected void GridView1_DataBound(object sender, EventArgs e)
{
   // Get the header row.
   GridViewRow headerRow = GridView1.HeaderRow;

   // ヘッダーの名前の変更
   int num = headerRow.Cells.Count;
   headerRow.Cells[0].Text = "回覧内容表示";
   headerRow.Cells[1].Text = "回覧板ID";
       :



選択ボタンの追加は、下記のように追加してボタン、リンクが追加できました。
後でわかったのですが、この部分は、上記のDBのアタッチなしでも「列の編集」で追加できたようですね。下記を書いたあと「列の編集」でそれの変更ができました。
コード:
<Columns>
    <asp:CommandField 
         ShowSelectButton="True" SelectText="選択" />
</Columns>



ありがとうございました。目的通りのことができました。
1

スキルアップ/キャリアアップ(JOB@IT)