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

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

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

Re[4]: GridViewのEmptyDataTemplate


(過去ログ 123 を表示中)

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

■73636 / inTopicNo.1)  GridViewのEmptyDataTemplate
  
□投稿者/ めめ (1回)-(2014/10/21(Tue) 13:49:46)

分類:[ASP.NET (VB)] 

開発環境:VS Express 2012

GridViewのEmptyDataTemplate内に配置したコントロールの値を取得したいと考えてます。
FooterTemplateの場合は以下のような感じでアクセスできています。
Dim text As Textbox = GridView1.FooterRow.FindControl("TextBox1")

EmptyDataTemplateの場合にはどのような方法がありますか。
どなたか教えてください。
引用返信 編集キー/
■73639 / inTopicNo.2)  Re[1]: GridViewのEmptyDataTemplate
□投稿者/ WebSurfer (362回)-(2014/10/21(Tue) 15:17:02)
No73636 (めめ さん) に返信

取得したいコントロールは何で、どういうタイミングで取得して、どう処理し
たいのかを書いてください。

それから、質問する際は部分的なことだけでなく、全体のシナリオを含めたや
りたいことを書くことをお勧めします。そうすれば、もし質問内容が見当違
い(失礼)で、質問に対する回答が得られてもやりたいことは実現できないよ
うな場合でも、やりたいことに対するソリューション的な回答が得られるかも
しれません。

最後にもう一つ、質問の最初にご自分の環境を書いてください。VS Express
2012 だけでは不十分です。OS, .NET, IIS などのバージョン、使用している
ブラウザなども書くようにしてください。
引用返信 編集キー/
■73640 / inTopicNo.3)  Re[2]: GridViewのEmptyDataTemplate
□投稿者/ めめ (2回)-(2014/10/21(Tue) 15:52:34)
No73639 (WebSurfer さん) に返信

失礼しました。環境は以下の通りです。
OS:Windows7 64bit
.Net:4.5
IIS:7.5
ブラウザ:IE11

GridViewからデータを追加したいと考えております。
データが既に存在している時はFooterTemplateへ上記のようにコントロールを配置し、それぞれのコントロールの値を取得できています。
データが存在していない時はFooterTemplateが表示されない為、EmptyDataTemplateにコントロールを配置しましたが、そのコントロールの値が取得できなくて困ってます。

取得したいコントロールはWebサーバーコントロールのTextBoxで、
同じくEmptyDataTemplateに配置したWebサーバーコントロールのButtonをクリックしたタイミングでTextBoxに入力された値を取得したいのです。

引用返信 編集キー/
■73641 / inTopicNo.4)  Re[3]: GridViewのEmptyDataTemplate
□投稿者/ WebSurfer (363回)-(2014/10/21(Tue) 16:39:42)
No73640 (めめ さん) に返信

> 取得したいコントロールはWebサーバーコントロールのTextBoxで、
> 同じくEmptyDataTemplateに配置したWebサーバーコントロールのButtonをクリック
> したタイミングでTextBoxに入力された値を取得したいのです。

そうした場合、TextBox は GridView の中の名前つきコンテナーに配置され、名前つき
コンテナーへの参照は取得できないようですので、再帰を使ってコントロールを見つけ
るメソッドを実装して使うことで、TextBox への参照が取得できると思います。

詳しくは以下のページが参考になると思います。

再帰を使って FindControl
http://surferonwww.info/BlogEngine/post/2010/07/27/Find-control-by-using-recursion.aspx

使い方は、GridView, TextBox の ID がそれぞれ GridView1, TextBox1 とすると、以下のようにします。

protected void Button1_Click(object sender, EventArgs e)
{
    Control ctrl = FindControlRecursive(GridView1, "TextBox1");

    if (ctrl != null)
    {
        string text = ((TextBox)ctrl).Text;
    }
}

引用返信 編集キー/
■73642 / inTopicNo.5)  Re[4]: GridViewのEmptyDataTemplate
□投稿者/ めめ (3回)-(2014/10/21(Tue) 16:59:51)
No73641 (WebSurfer さん) に返信

取得することができました!
ありがとうございます!
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -