- - PR -
カーソル移動を汎用サブルーチンにしたい。
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-05-09 11:32
いつもお世話になっております。
現在、Webフォームを開発しているASP.NETの初心者です。 この会議室を参考にさせてもらい、RegisterStartupScriptを使用して、 Webフォームでのカーソル移動が出来るようになったのですが、 複数のフォームでカーソル移動するため、汎用のサプルーチンにしようと、 Public Class MapAccess Inherits System.Web.UI.Page '*********************************************************** ' カーソル移動処理 '*********************************************************** Public Sub FocusSet(ByVal ww As String) Dim scrpt As String scrpt = "<script language='JavaScript'>" + "document.getElementById('" scrpt += ww + "').focus(); <" + "/script>" RegisterStartupScript("setfocus", scrpt) End Sub End Class というクラスを追加し、各Webフォームから FocusSet(txtSyain_CD.ClientID) のようにしたのですが、 ”名前FocusSetは宣言されていません”というエラーが出たので、 上記サブルーチンにSharedを追加し、 Public Sub FocusSet(ByVal ww As String) ↓ Public Shared Sub FocusSet(ByVal ww As String) としたのですが、今度はRegisterStartupScriptのところに ”クラスの明示的なインスタンスを指定しないで、共有メソッドまたは 共有メンバ初期化子内からクラスのインスタンス メンバへ参照することは できません。” というエラーが追加され、コンパイルを通りません。 それならばと思い、RegisterStartupScriptらの前に"System.Web.UI.Page."を つけてみたのですが、今度は ”非共有メンバを参照するには、オブジェクト参照が必要です。” というエラーがでます。 どなたか、解決方法か参考になる記事があったら教えていただけないでしょうか? 各Webフォームに '*********************************************************** ' カーソル移動処理 '*********************************************************** Private Sub FocusSet(ByVal ww As String) Dim scrpt As String scrpt = "<script language='JavaScript'>" + "document.getElementById('" scrpt += ww + "').focus(); <" + "/script>" RegisterStartupScript("setfocus", scrpt) End Sub を追加し、Webフォーム内で FocusSet(txtSyain_CD.ClientID) のようにするとOKだったのですが・・・。 | ||||
|
投稿日時: 2005-05-09 11:57
FocusSet()メソッドを呼ぶWebフォームはMapAccessクラスを継承しているのではないのですか?
| ||||
|
投稿日時: 2005-05-09 11:58
内容は検証していないので元のままですが、
でどうでしょうか。 | ||||
|
投稿日時: 2005-05-09 14:28
burton999さん、にしざきさん、ありがとうございました。
御指摘どおり、サブルーチンの引数に、 Byval target As System.Web.UI.Page を追加し、RegisterStartupScript文を target.RegisterStartupScript("setfocus", scrpt) に変更し、Webフォームで、 MapAccess.FocusSet(Me, txtSyain_CD.ClientID) としたら、コンパイルOKで、予想通りの結果が得られました。 どうもありがとうございました。 |
1