- - PR -
[ASP.NET1.1(VB)]DataGrid の ページング HyperLink へ アクセス方法について
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-05-21 13:15
お世話になります。
初めて投稿します。 開発環境は、以下の通りです。 ASP.NET(VB) .NET Framework 1.1 DataGrid のページング機能を有効にし、 ページを移動させる HyperLink を表示させております。 この HyperLink にアクセスしたいのですが、 どのようにすれば良いのでしょうか? 作成されたHTMLソースを見てみると、 IDが付与されておりません。 IDがわかれば、 FindControlを使用してアクセスできそうですが・・・。 やりたい事は、 動的な Text の変更、Javascrpit を使用して、カーソルの設定 等です。 ご存じの方、宜しくお願いします。 | ||||||||||||
|
投稿日時: 2008-05-21 22:35
DataGridのItemCreatedイベントで
e.Item.Controls[0].Controls[2] 等とするとDataGridLinkButtonという型のコントロールが取得できます。 (eはハンドラの第2引数DataGridItemEventArgs) ここも参考になると思います。 http://www.atmarkit.co.jp/fdotnet/dotnettips/072modpager/modpager.html でもカスタマイズしずらそうなので私だったら自分でページャ作っちゃうかもしれません。 | ||||||||||||
|
投稿日時: 2008-05-22 11:31
べる様、ご返信どうもありがとうございます。
教えて頂いたページ、キーワードを元に調査いたしましたところ、 無事にアクセスできるようになりました。 参考にさせて頂いたスレッド http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=26005&forum=7&5 ただ、以下のロジックでは、DataGrid の DataBind 時、 ※1の箇所を2回通過しております。ステップ実行にて確認しました。 以下のロジックをテストした時は、ページ位置を【下】に設定し、確認しましたが、 これは、ページ位置を【上下】に設定できる事から、 表示はされないが、内部的には2回実行されているという事でしょうか? もしそうだとすると、『ページ位置【下】の時』という判定を行いたいのですが、 どのようにするのが正攻法なのでしょうか? e.Item.Visible, e.Item.Enabled で判断できるかと思ったのですが、 共に True で判断できませんでした。 フラグ等を用いると判断はできそうですが、 これは最終手段にしたいと考えております。 ご存じの方、ご回答宜しくお願いします。 Private Sub DataGrid1_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemCreated Dim caption As String If e.Item.ItemType = ListItemType.Pager Then For Each ctrl As Control In CType(e.Item.Cells(0), TableCell).Controls '※1 If ctrl.GetType.Name.Equals("DataGridLinkButton") Then caption = CType(ctrl, LinkButton).Text End If Next End If End Sub | ||||||||||||
|
投稿日時: 2008-05-22 16:07
フラグでやってみましたがそういうことみたいです。
| ||||||||||||
|
投稿日時: 2008-05-22 19:43
べる様、何度もご返信ありがとうございます。
そうですか、このやり方自体が正攻法ではないのですね、 了解しました。 前回ご回答頂いたように、自作する方向で検討したいと思います。 以上 |
1