- PR -

引用符で区切ってください? ''

1
投稿者投稿内容
saku
会議室デビュー日: 2004/10/18
投稿数: 9
投稿日時: 2004-10-18 10:03
ASP.netをVisual Studio.net で開発して1ヶ月の者です。

Repeater内の別ControlのClientIDをJavaScriptに渡すために、
以下のような記述をしたところ
"デザイナ ビューで開けませんでした。'<% ..."value"... %>'
ブロック内にあるそれぞれの値を、引用符で区切ってください。"
と怒られました。
クォーテーションを色々変えてみたのですがいまいちうまくいきません。
どのように記述するのが正しいのでしょうか?
ご指導よろしくお願いします。


[Source]
<asp:textbox id="txttest" runat="server">
<INPUT id="btnRsv_Acpt_S" type="button" value="▼"
OnClick="fncOpenCalendar('<%# CType(Container.FindControl("txttest"), System.Web.UI.WebControls.TextBox).ClientID %>')">
saku
会議室デビュー日: 2004/10/18
投稿数: 9
投稿日時: 2004-10-18 20:28
解決しました。(~~;
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2004-10-18 20:37
あ、どう解決したのか教えていただけませんか?

Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-10-18 21:01
引用:

sakuさんの書き込み (2004-10-18 10:03) より:

コード:
OnClick="fncOpenCalendar('<%# CType(Container.FindControl("txttest"), System.Web.UI.WebControls.TextBox).ClientID %>')">




この部分ですね。onclick=”...’...”txttest”...’”と鳴ってますから、txttestの前後の2重引用符が、文字列の終端子ととられているわけです。これをエスケープした、ということかな?
saku
会議室デビュー日: 2004/10/18
投稿数: 9
投稿日時: 2004-10-18 21:43
Jitta様がおっしゃるとおり
"txttest"のダブルクォーテーションが問題でした。
"txttest"を変数へ格納し、OnClickではその変数で記述することにより
ダブルクォーテーションをエスケープしました。

はじめはItemDataBoundでClientIDをゲットして、
ClientIDを直接挿入しようと思ったのですが、
処理の順番が、クライアント側のRepeaterが先に実行され、
ItemDataBoundのイベントが後で実行されるため
単純に挿入できませんでした。

かといって、ボタンをサーバーコントロールにはしたくなかったため、
妥協の策として、"txttest"を変数へ格納する方法で解決させました。
更にいい案がありましたら、またご指導お願いいたします。

レスありがとうございました。m(__)m
1

スキルアップ/キャリアアップ(JOB@IT)