- N.K
- 会議室デビュー日: 2003/05/12
- 投稿数: 8
|
投稿日時: 2004-03-24 16:54
ゆうじゅんさん、まゆりんさん、ありがとうございます。
全然ダメってことないです。
確かにボタンっぽくなりますね。
この方法でやったとして、もう一つ質問なのですが、画像サイズは小さいまま、ボタンのwidth,heightを大きくすることは出来るでしょうか?ちょっと大きめのボタンに小さいイメージ、というのを想定してまして、出来るならそのようにしたいと思っているのですが。難しいでしょうか。。?
質問ばっかりですみませんがよろしくお願いします。
|
- ゆうじゅん
- ぬし
- 会議室デビュー日: 2004/01/16
- 投稿数: 347
|
投稿日時: 2004-03-24 17:03
| 引用: |
|
私は、このボタンをDatagrid内部に設置して、押す毎にボタンのイメージを交互に
image1・image2と変更して表示させたいと思っています。
(「確認」→「確認取り消し」みたいなイメージ)
そこで、HTMLボタンをサーバーコントロールとしてあつかってみたのですが、サーバーコントロール化したHTMLボタンだとFindControlで取得出来ないことが分かりました(多分)。クリックイベントが発生させることが出来ませんでした。
そこで、サーバーコントロールにつけることは出来ないか、と思ったのです。
|
おそらくサーバコントロールにしてもFindControlで見つけることはできないと思いますが
試してみました?(コントロールIDが自動的に設定されるため)
なのでHTMLボタンでもFindControlではなく以下のようにすれば取得できるはずなので
試してみてはどうでしょうか?
| コード: |
|
HtmlInputButton GetButton( ControlCollection Controls )
{
foreach( Control control in Controls )
{
if( control is HtmlInputButton )
return (HtmlInputButton)control;
}
return null;
}
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if( e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem )
{
string uniqueID = e.Item.Cells[2].Text;
// 編集ボタンにJAVAスクリプトを設定
HtmlInputButton button = GetButton( e.Item.Cells[2].Controls );
if( button != null )
{
button.Attributes["onclick"] = "window.location.replace( 'edit.aspx?UniqueID=" + uniqueID + "' )";
}
}
}
|
|
- N.K
- 会議室デビュー日: 2003/05/12
- 投稿数: 8
|
投稿日時: 2004-03-24 17:40
ゆうじゅんさん、ありがとうございます。
私はテンプレート列にボタンを任意に設定して、IDをつけ(例:Btn)、
Datagrid_ItemDataBoud内で、
Dim aaa as Button = e.Item.FindControl("Btn")
と書いたら取得することが出来ました。
それから、ソース、ありがとうございます。
私はVB.NETしか分からないので、これから解析してみます。
(ちょっと時間がかかるかもです)
後で報告にきます!
|
- N.K
- 会議室デビュー日: 2003/05/12
- 投稿数: 8
|
投稿日時: 2004-03-25 09:45
皆さん、たくさんの情報ありがとうございました。
ゆうじゅんさん、ソースを解析してVB.NETでやってみたら出来ました!
それに、attributeを使うことも、すっかり忘れてて、目からウロコでした。
本当にありがとうございました。
これからもよろしくお願いいたします。
|