C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

DataGridをdivタグで囲みたい


(過去ログ 7 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■7381 / inTopicNo.1)  DataGridをdivタグで囲みたい
  
□投稿者/ shi 二等兵(1回)-(2006/10/10(Tue) 10:00:36)

分類:[C#] 


分類:[C#] 

おはようございます。質問させてください。

DataGridをdivタグで囲み、Gridにスクロールをつけたいのですが
まったく検討がつきません。
現在画面のスクロールで対応しているのですが見た目がよくありません。
下記の状態で実行するとエラーになってしまいます。

よろしくお願いします。

private void Page_Load(object sender, System.EventArgs e)
{

if (!IsPostBack)
{
string tmp = (string)Request.Params["ConditionKeys"];
if (tmp != "")
{
string [] conditionKeys = tmp.Split(',');
AddDataGrid(conditionKeys);
}
}
}

private void AddDataGrid(string[] keysList)
{
DataTable dataTable = new DataTable();
dataTable.Columns.Add(new DataColumn(DispValue.Data("Select"), typeof(string)));
dataTable.Columns.Add(new DataColumn(DispValue.Data("Attribute"), typeof(string)));

DataRow dataRow;
for(int i = 0; i < keysList.Length; i++)
{
//dataTableにデータを追加する
}
DataGrid.DataSource = dataTable;
DataGrid.DataBind();

↓↓↓ここでdivタグ処理?
HtmlGenericControl div = new HtmlGenericControl("DIV");
div.Attributes["style"] = "OVERFLOW-Y: scroll; WIDTH: 300px; HEIGHT: 400px";
div.Controls.Add(DataGrid);

}

0
引用返信 編集キー/
■7384 / inTopicNo.2)  Re[1]: DataGridをdivタグで囲みたい
□投稿者/ ぽぴ王子 軍曹(62回)-(2006/10/10(Tue) 11:37:15)
ぽぴ王子 さんの Web サイト

分類:[C#] 

No7381に返信(shiさんの記事)

こんにちは。

> 現在画面のスクロールで対応しているのですが見た目がよくありません。

「どのように」見た目が良くないのか書かないと伝わりませんよ。

> 下記の状態で実行するとエラーになってしまいます。

「どこで」エラーが出るのかを書かないと伝わりませんよ。

まぁそれはそれとして。

div 要素で囲みたいのであれば、.aspx ファイルの方で div 要素を書いてあげればいいような気がします。
見たところ動的に変更する必要はないようですし。

動的にやるなら、div を PlaceHolder に追加する必要があるのではないでしょうかね。


0
引用返信 編集キー/
■7446 / inTopicNo.3)  Re[2]: DataGridをdivタグで囲みたい
□投稿者/ shi 二等兵(3回)-(2006/10/12(Thu) 10:53:01)

分類:[C#] 

ぽぴ王子さん、ありがとうございます。返信が遅れてすいません。

>>現在画面のスクロールで対応しているのですが見た目がよくありません。
>
> 「どのように」見た目が良くないのか書かないと伝わりませんよ。
DataGridの下に表示するボタンがあるのですが、データが多い場合見れないということです。

> div 要素で囲みたいのであれば、.aspx ファイルの方で div 要素を書いてあげればいいような気がします。
> 見たところ動的に変更する必要はないようですし。
>
> 動的にやるなら、div を PlaceHolder に追加する必要があるのではないでしょうかね。
できればHTMLを直接変更せずに、csファイルのみで簡潔する方法がいいのですが。


0
引用返信 編集キー/
■7450 / inTopicNo.4)  Re[3]: DataGridをdivタグで囲みたい
□投稿者/ ぽぴ王子 軍曹(65回)-(2006/10/12(Thu) 11:39:28)
ぽぴ王子 さんの Web サイト

分類:[C#] 

No7446に返信(shiさんの記事)

こんにちは。

> できればHTMLを直接変更せずに、csファイルのみで簡潔する方法がいいのですが。

× 簡潔
○ 完結
ですかね?

それはそれとして、なぜ cs ファイルのみで完結するほうがいいのでしょう。
どうやら div の中身をスクロールさせることで DataGrid の高さを(見た目上)
固定にしたいということのようですが、結果的に HTML になるもので、動的に作
成する必要のないものを cs ファイル側で作成する理由がちょっと見当たりません。

どうしてもやりたいというのであれば、やはり PlaceHolder について調べる必
要があるかもしれません。
実際のところ、最近は Windows アプリばかり作っていて、ASP.NET の方は全然
触っていないので、詳しくは答えられないかもしれません。申し訳ないです。
(実験環境がないので調べられないのです)

0
引用返信 編集キー/
■7452 / inTopicNo.5)  Re[4]: DataGridをdivタグで囲みたい
□投稿者/ shi 二等兵(4回)-(2006/10/12(Thu) 13:03:50)

分類:[C#] 

ぽぴ王子さん、ありがとうございます。

> それはそれとして、なぜ cs ファイルのみで完結するほうがいいのでしょう。
> どうやら div の中身をスクロールさせることで DataGrid の高さを(見た目上)
> 固定にしたいということのようですが、結果的に HTML になるもので、動的に作
> 成する必要のないものを cs ファイル側で作成する理由がちょっと見当たりません。
>
> どうしてもやりたいというのであれば、やはり PlaceHolder について調べる必
> 要があるかもしれません。
私もdivをHTMLに書いてしまえば確実だと思うのですが、どうしても動的に作成するほうが良いというオーダーなのです。
PlaceHolderもHTMLにコードとして書くものだと思うので(調べた結果、PlaceHolderというタグ(?)を埋め込んで、そこにコントロールを入れる感じなのかな、と思いました)やはりほかの方法が知りたいです。

何かよい方法がありましたら教えてください。お願いします。

0
引用返信 編集キー/
■7484 / inTopicNo.6)  Re[5]: DataGridをdivタグで囲みたい
□投稿者/ ぽぴ王子 軍曹(66回)-(2006/10/13(Fri) 11:09:59)
ぽぴ王子 さんの Web サイト

分類:[C#] 

No7452に返信(shiさんの記事)

こんにちは。

乗りかかった船ですので、環境がないながらも少し調べてみました。[*1]

最初に書いたように「どこでエラーが出るのか」が書かれていなかったので、調
査に少し時間がかかりましたが、少し気になる点がありました。

とりあえず
> HtmlGenericControl div = new HtmlGenericControl("DIV");

> Panel div = new Panel();
という感じに HtmlGenericControl を Panel にしてみてください。

よくよく考えれば、HtmlGenericControl の Controls に WebControls 名前空間
のコントロールが入ること自体がおかしいのでした。
ただ、これだけだと Panel の中に DataGrid が入るだけで終わってしまうので、
Panel 自体を Page クラスの Controls に追加してあげる必要があるかもしれま
せん(さすがにそこまでは実験できませんでした)。

ここから先はもう少し調べてみてください。
またわからない部分があれば、新規にスレを立ててみると心優しい誰かが答えて
くれるかもしれません(あっ、逃げた!)。

[*1]
イミディエイトウィンドウで
StringWriter sw = new StringWriter();
System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw);
System.Web.UI.WebControls.PlaceHolder ph = new System.Web.UI.WebControls.PlaceHolder();
などとやってみて
ph.Render(htw);
とか、涙がちょちょぎれるような小細工をしてみた

0
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -