tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^5: ラベルのイベントプロシージャーで
投稿日: 2005/11/07(Mon) 12:41
投稿者なおこ(・∀・)
お世話になります。

> JavaScliptで
>
> <SCRIPT LANGUAGE="JavaScript">
> function open(){
>     window.open("aaa.html","window1") }
> </SCRIPT>
>
> <A HREF="#" onclick="open()"><asp:label id="Label1" st
> yle=…></asp:label></A>
>
> をHTMLビューから手入力でやってみました。
> これで表示できるようになったのですが、使い方として間違っていますでしょうか?
別ウィンドウでaaa.htmlを表示したいだけなのですよね。
であれば、これは間違ってないと思います。

> なおこさんから教えていただいたwindow.event.srcElementがよく分かりませんでした。
> すいません、力量不足でした。
私の前の投稿でご提示しましたURLはかなり詳しく書かれていると思います。
解らない単語が出てきたら、e-words(hhttp://e-words.jp/)などで調べて
理解するように頑張ってください。

> DhtmlとかJavaScliptは通常Web作成で使うものと同じでよいのでしょうか?
通常Web作成というと??
他言語(JavaとかPHPとか)でも使うのか?ということですか?
であれば、必要に応じて他の言語でも使うことになると思います。

> 今後のためにもなおこさんが教えてくれたやり方も知っておきたいのですが
> もし良かったら教えていただけないでしょうか?
> これはクラス化も出来るのでしょうか?
クラス化とは?.NETのクラスとして持つことは可能か?という事ですか?
であれば不可能です。
サーバーサイドとクライアントサイドの違いについて調べてみてはいかがでしょう。

> function onClick()
> {
>     srcElem = window.event.srcElement;
> window.open("aaa.html","window1")
> }
>
> ではぜんぜん違いますよね。また呼び出し側は私と同じような感じで
> <A HREF="#" onclick="onClick()"><asp:label id="Label1"
>  style=…></asp:label></A>
> ではだめですよね。よろしくお願いします。 クルー

上のソースを見る限りでは、window.event.srcElementをとって来ても、
画面遷移先に何も渡してませんよね。

解答の一例としてはこんな感じになると思います。
■WebForm3.aspx

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm3.aspx.vb"
Inherits="test002.WebForm3"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
  <HEAD>
    <title>WebForm3</title>
    <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
    <meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
    <meta name="vs_defaultClientScript" content="JavaScript">
    <meta name="vs_targetSchema" content="hhttp://schemas.microsoft.com/intellisense/ie5">
    <SCRIPT language="javascript" type="text/javascript">
    <!--
    function onClick()
    {
      srcElem = window.event.srcElement;
      if (srcElem.id == "Label1") {
        document.Form1.action = "WebForm3.aspx";
        document.Form1.test.value = srcElem.id;
        document.Form1.target = "_self";
        document.Form1.submit();
      }
    }
    // -->
    </SCRIPT>
  </HEAD>
  <body MS_POSITIONING="GridLayout" onclick="onClick()">
    <form id="Form1" method="post" runat="server">
    <input type="hidden" name="test" value="" />
      <asp:Label id="Label1" style="Z-INDEX: 101; LEFT: 19px; POSITION: absolute; TOP:
23px" runat="server">Label</asp:Label>
      <asp:Label id="Label2" style="Z-INDEX: 102; LEFT: 22px; POSITION: absolute; TOP:
58px" runat="server">Label</asp:Label>
    </form>
  </body>
</HTML>

■WebForm3.aspx.vb
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
  ' ページを初期化するユーザー コードをここに挿入します。
  Dim strQueryData As String = Request.Params.Get("test")
  If strQueryData <> "" Then
    Me.Label2.Text = strQueryData + "がクリックされました"
  End If
End Sub

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。