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

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

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

Re[8]: javascritpをASPコードで。


(過去ログ 19 を表示中)

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

■7713 / inTopicNo.1)  javascritpをASPコードで。
  
□投稿者/ 我王 (5回)-(2007/09/13(Thu) 14:52:59)

分類:[ASP.NET (C#)] 

2007/09/13(Thu) 15:24:01 編集(投稿者)
2007/09/13(Thu) 15:09:11 編集(投稿者)
2007/09/13(Thu) 14:58:45 編集(投稿者)

<pre><pre>vc#2.0 です

昨日質問させていただいた内容と似ているのですが
考えてもちょっと分からなくてもう一度お願いいたします。
javascriptから
function search(){
  try {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  } catch(e) {
    xmlHttp=new XMLHttpRequest();
  }


  xmlHttp.onreadystatechange=function() {
    if (xmlHttp.readyState == 4) {
      if (xmlHttp.status == 200) {
        var aData = xmlHttp.responseXML.documentElement;
        var data = aData.childNodes;
        contents = "<ol type='square'>";
        for (i =0; i < data.length; i++) {
          contents += "<li>< a href ='JavaScript: void(0)' onclick=\"document.fm.test.value="
          + data[i].childNodes[0].firstChild.nodeValue
          + ";document.fm.test2.value='"
          + data[i].childNodes[1].firstChild.nodeValue
          + "';\">"
          + data[i].childNodes[0].firstChild.nodeValue
          + "&nbsp;"
          + data[i].childNodes[1].firstChild.nodeValue
          + "< / a ></li>";
        }
        contents+="</ol>";
        result.innerHTML=contents;
        
      }
    }
  if (document.fm.test.value.length >= 3) {
    xmlHttp.open("GET",
      "testtest?quely="
      + document.fm.test.value.replace("-", ""),true);
    xmlHttp.send(null);
  }
  }
を実行したいんですがtestはASP.NETコントロールなのでonclickはありません。なのでエラーが出てしまっています。
なのでonclickの箇所をASP側で呼んで書くかほかのかきかたかになるとおもうのですがわかりません。
昨日の質問からの返答で  test.Attributes["onkeydown"] = "search()";でsearchは呼べたのですが
そのsearchの中のjavascriptのonclickがASPコントロールではないのでエラーがでます。
どのように変えたらいいのかお願いいたします

このjavascritp自体はaspのXMLを返すページにクエリで値を渡しかえってきたXMLから取得し表示させようとしています。

ご教授願います</pre></pre>

引用返信 編集キー/
■7714 / inTopicNo.2)  Re[1]: javascritpをASPコードで。
□投稿者/ ひろ (25回)-(2007/09/13(Thu) 15:19:47)
No7713 (我王 さん) に返信

ひょっとして「Ajax」ですか?
だったら、こんな面倒なことしないで、「AJAX.NET」入れて作成された方が簡単ですよ。
間違っていたらごめんなさい。


引用返信 編集キー/
■7715 / inTopicNo.3)  Re[2]: javascritpをASPコードで。
□投稿者/ 我王 (6回)-(2007/09/13(Thu) 15:25:59)
No7714 (ひろ さん) に返信
> ■No7713 (我王 さん) に返信
>
> ひょっとして「Ajax」ですか?
> だったら、こんな面倒なことしないで、「AJAX.NET」入れて作成された方が簡単ですよ。
> 間違っていたらごめんなさい。
>
AJAXですがこのクライアント側からのやり方ですべてやりたくやっています。一応これ自体はサンプルを参考にはしていますがほかAJAX
などをつかったものもすべてこのやり方でやっているのでお願いします
引用返信 編集キー/
■7720 / inTopicNo.4)  Re[3]: javascritpをASPコードで。
□投稿者/ ひろ (26回)-(2007/09/13(Thu) 16:31:05)
No7715 (我王 さん) に返信

ん〜、これ、「ASP.NET のコントロール」でなくて、「インプットタグ」でやったら動きますか?

先日の質問も、

「直接 ASP.NET のコントロールに「OnClick」イベントが付けられない」

の回答をしたつもりですが…
前回「出来ない」と結論付けたものを今回もまたやろうとしているようにしか見えませんが、どうでしょうか。

また、サンプルを参考に作成されているとのことですが、それは本当に「ASP.NET」でのサンプルなのでしょうか?
ひょっとして、ASP.NET ではないもののサンプルでは?

#IISを使うからといって、ASP.NET ではないですよね。




> ■No7714 (ひろ さん) に返信
>>■No7713 (我王 さん) に返信
>>
>> ひょっとして「Ajax」ですか?
>> だったら、こんな面倒なことしないで、「AJAX.NET」入れて作成された方が簡単ですよ。
>> 間違っていたらごめんなさい。
>>
> AJAXですがこのクライアント側からのやり方ですべてやりたくやっています。一応これ自体はサンプルを参考にはしていますがほかAJAX
> などをつかったものもすべてこのやり方でやっているのでお願いします
引用返信 編集キー/
■7721 / inTopicNo.5)  Re[4]: javascritpをASPコードで。
□投稿者/ 我王 (8回)-(2007/09/13(Thu) 16:40:09)
前回のものはひろさんに教えていただき出来ました。
もちろんASP.NETでのサンプルではありません。
普通のhtmlでAJAXを使い動かすためのサンプルです。

なのでASP.NETコントロールを使うと動かないということになってます。

はじめの質問がなにか間違ったような気がします。
ためしに
         contents += "<li>< a href ='JavaScript: void(0)' onclick=\"document.fm.test.value="
          + data[i].childNodes[0].firstChild.nodeValue
          + ";document.fm.test2.value='"
          + data[i].childNodes[1].firstChild.nodeValue
          + "';\">"
          + data[i].childNodes[0].firstChild.nodeValue
          + "&nbsp;"
          + data[i].childNodes[1].firstChild.nodeValue
          + "< / a ></li>";
の箇所を
        contents +=<li>てすと</li>
とやると てすと と表示されました。
これにAタグをつけてクリックしたらtestとtest2のテキストボックスへデータを当てはめるみたいなことをやろうとしてます。
なのでonclickはよく考えたらテキストボックスに対してonclickがないということじゃないきがしました。javascriptエラーが出ているので勝手にそう思ってましたが
微妙です。
もう少し考えます。

引用返信 編集キー/
■7728 / inTopicNo.6)  Re[5]: javascritpをASPコードで。
□投稿者/ 我王 (10回)-(2007/09/13(Thu) 18:41:46)
原因がいまだに分かりませんがjavascriptをしようしなければ
とりあえず動いたのは試しているので
HTMLだけでどうにかならないかなと考えるんですが無理ですか?

表示される文字をクリックしたらテキストボックスに必要な文字を代入みたいなことってHTMLだけでできないでしょうか?

お願いします

あとJavaScript: void(0) の意味が良く分かりません。これはどういう意味なんでしょうか。コントロールボタンを押しながらリンク先を表示のように書いてますが
よくわかりません。 Aタグについて調べてみます。
引用返信 編集キー/
■7731 / inTopicNo.7)  Re[6]: javascritpをASPコードで。
□投稿者/ mあ (58回)-(2007/09/13(Thu) 19:37:51)
No7728 (我王 さん) に返信
> 原因がいまだに分かりませんがjavascriptをしようしなければ
> とりあえず動いたのは試しているので
> HTMLだけでどうにかならないかなと考えるんですが無理ですか?

if (xmlHttp.status == 200) {
    var aData = xmlHttp.responseXML.documentElement;
    var data = aData.childNodes;
    var contents = document.createElement("ol");
    contents.setAttribute("type", "square");

    //イベントの引数を動的に設定したい場合に有効な書き方
    //わけわからん書き方だが、覚えておくと吉
    var setValue = function(a1,a2) {
       return function() {
           document.fm.test.value = a1;
           document.fm.test2.value = a2;
       }
    }; 
    for (i =0; i < data.length; i++) {
      var a = document.createElement("a");
      a.href = "JavaScript:void(0)";
      a.onclick = setValue(data[i].childNodes[0].firstChild.nodeValue,
                           data[i].childNodes[1].firstChild.nodeValue)
                  );
      a.innerText = data[i].childNodes[0].firstChild.nodeValue + " " +
                    data[i].childNodes[1].firstChild.nodeValue
                    ;
      contents.appendChild(a);
    }
    result.appendChild(contents);




> JavaScript: void(0) の意味が良く分かりません。
何もしないって意味です。
http://msdn2.microsoft.com/ja-jp/library/a33kc5c5(VS.80).aspx

引用返信 編集キー/
■7732 / inTopicNo.8)  Re[7]: javascritpをASPコードで。
□投稿者/ mあ (59回)-(2007/09/13(Thu) 19:50:15)
2007/09/13(Thu) 19:50:38 編集(投稿者)
<script>
<!--
var arr = ["AAA","BBB","CCC"];
var fnc = [];

function setFunc() {

   for (var i=0;i < arr.length;i++) {
      fnc.push(function(a) {
         return function() {
            alert(a);
         }
      }(arr[i]));
   }
   for (var i=0;i < fnc.length;i++) {
      fnc[i]();
   }
}
window.onload = function() {
   setFunc();
}
//-->
</script>

自前の Ajax アプリは、こーゆー書き方バッコンズッコン使います、たぶん。
Prototype.js とか見るともっと酷いけど。

わけわからんながらでも覚えてね。


引用返信 編集キー/
■7733 / inTopicNo.9)  Re[7]: javascritpをASPコードで。
□投稿者/ 我王 (11回)-(2007/09/13(Thu) 20:06:16)
ありがとうございます。
大変勉強になります。もっとよくみて勉強させていただきます。

まだそちらでは試していないのですが 上に張らせていただいたコードで何とかできました。
サーバ側から正しい値を返すことができていなかったです。

でも あmさん のはよく見て勉強させてもらいますが、とりあえず今のだと表示はするんですがリンクをクリックしてもjavascript:void(0)とエクスプローラの左下にエラーがでて テキストに表示されません。

'JavaScript: void(0)'の何もしないということですがこれでテキストに表示されるんでしょうか??

お願いします、すみません。

引用返信 編集キー/
■7734 / inTopicNo.10)  Re[8]: javascritpをASPコードで。
□投稿者/ 我王 (12回)-(2007/09/13(Thu) 20:07:20)
No7732 (mあ さん) に返信
> 2007/09/13(Thu) 19:50:38 編集(投稿者)
>
> <script>
> <!--
> var arr = ["AAA","BBB","CCC"];
> var fnc = [];
>
> function setFunc() {
>
> for (var i=0;i < arr.length;i++) {
> fnc.push(function(a) {
> return function() {
> alert(a);
> }
> }(arr[i]));
> }
> for (var i=0;i < fnc.length;i++) {
> fnc[i]();
> }
> }
> window.onload = function() {
> setFunc();
> }
> //-->
> </script>
>
> 自前の Ajax アプリは、こーゆー書き方バッコンズッコン使います、たぶん。
> Prototype.js とか見るともっと酷いけど。
>
> わけわからんながらでも覚えてね。

アーありがとうございます。
こっちもみます。
>
>
引用返信 編集キー/
■7742 / inTopicNo.11)  Re[8]: javascritpをASPコードで。
□投稿者/ mあ (60回)-(2007/09/13(Thu) 23:09:44)
2007/09/14(Fri) 10:25:25 編集(投稿者)
2007/09/14(Fri) 02:12:14 編集(投稿者)
2007/09/14(Fri) 02:12:03 編集(投稿者)
2007/09/14(Fri) 02:05:41 編集(投稿者)
2007/09/14(Fri) 02:04:47 編集(投稿者)
2007/09/14(Fri) 01:13:40 編集(投稿者)
2007/09/13(Thu) 23:31:45 編集(投稿者)

■No7733 (我王 さん) に返信

>> contents += "<li>< a href ='JavaScript: void(0)' onclick=\"document.fm.test.value="
>>          + data[i].childNodes[0].firstChild.nodeValue
>>          + ";document.fm.test2.value='"
>>          + data[i].childNodes[1].firstChild.nodeValue
>>          + "';\">"

onclick = function [anonymous]() {
   document.fm.test.value = data[i].childNodes[0].firstChild.nodeValue の値 ;
   document.fm.test2.value='data[i].childNodes[1].firstChild.nodeValue' の値 ;
}
HTMLパーサーにより上記のように展開されます。
test.value が受け取る値は文字列ですが・・・・??



<script>
<!--
function __q(s) { return "'" + s + "'"; }
function __Q(s) { return '"' + s + '"'; }

var Anchor = {
   href:"", 
   click:"", 
   title:"",
   label:"",
   toString:function() {
     var arr = [];
     arr.push("<Anchor");
     arr.push("href=" + __q(this.href));
     arr.push("onclick=" + __q(this.click));
     arr.push(">" + this.label + "<\/Anchor>");

     return arr.join(" ");
   }
};

var elementSample1 = "aaa bbb ccc";
var elementSample3 = "ZZZ,XXX,DDD";
var elementSample2 = "AaaBbbCcc";
var contents = "";

Anchor.href = "JavaScript:void(0)";
Anchor.click = "this.form.test.value=" + __Q(elementSample1) + ";" + 
               "this.form.test2.value=" + __Q(elementSample3);
Anchor.title = elementSample1;
Anchor.label = elementSample2;



function window.onload() {
   document.forms[0].test.value = Anchor.toString();
}
//-->
</script>
<body>
<form>
<textarea id="test" rows=5 cols=60></textarea>
</form>
</body>

引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -