【質問】ASP.NETスレ Part4【議論】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/07/17(火) 23:49:46ID:pyJr9yIyPart1 - 【質問】 ASP.NETスレ 【議論】
http://pc5.2ch.net/php/kako/1040/10406/1040698263.html
【質問】ASP.NETスレ Part2【議論】
http://pc8.2ch.net/test/read.cgi/php/1111480331/
【質問】ASP.NETスレ Part3【議論】
http://pc11.2ch.net/test/read.cgi/php/1160355849/
0113nobodyさん
2007/08/30(木) 20:32:17ID:???テキストエリアへのHTMLタグの入力を禁止するために、
RegularExpressionValidatorを使って入力チェックを行おうとしています。
正規表現で指定した禁止文字を入力しフォーカスを外すと、
エラーメッセージを表示してくれるのですが、
サブミットボタンを押してもサブミットが発生してくれません。
ボタンでのサブミットを発生させるにはどのようにすればよろしいでしょうか?
アドバイスお願いいたします。
0114nobodyさん
2007/08/31(金) 00:34:36ID:???アーカイブ等でよく見かけるメールのやりとりを階層表示するには
どのようにすれば良いのでしょうか?表示は件名、受信日、Fromのみ
とし、任意の件名をクリックすると、別ページでTo、Cc、件名、本文
が表示されるのをイメージしています。よろしくお願いいたします。
言語VB.NET、.NET Framework2.0です。
0115nobodyさん
2007/08/31(金) 00:34:37ID:???無理じゃないし、擬似的にでなくても出来るよ。
GridViewのPreRenderでsender.BottomPagerRow.Visible = True
GridViewのRowDataBoundで1ページに収まる場合、
BottomPagerRow.VisibleがFalseにされるんでそれより後に動く
イベントでBottomPagerRow.VisibleをTrueすれば表示される。
まぁ、イベントの順番とかどう言う処理してるかとか意識した方がいいと思う。
0116nobodyさん
2007/08/31(金) 02:09:46ID:???エラーなのにポストバックさせたいのか?
よく分からんが↓辺りかな。2003で試せる環境無いから適当だけど。
http://msdn2.microsoft.com/ja-jp/library/bt244wbb(vs.80).aspx
ってか、HtmlEncodeでHTMLタグ無効化した方が簡単だし安全だと思うが。
>>114
ttp://lists.samba.org/archive/linux/2007-August/thread.html
こう言うのの事か?
単純にならDB検索して、階層は<ul><li>を入れ子で<li>の中にaタグ入れてURLに
パラメータ与えた別ページ開くように件名リンクさせる文字列作って
Literalコントロールあたりに入れればいいんじゃね。
aspのHyperLinkとかLinkButtonコントロールとかでポストバックさせて
「リスト表示」と「To、Cc、件名、本文」部分のVisibleを切り替えれば別ページも
いらないと思うが、その場合はRepeaterコントロールあたりで<ul><li>の
繰り返し処理する必要があるかな。
0117nobodyさん
2007/08/31(金) 10:08:42ID:???返信ありがとうございます。
仕事中なので携帯から失礼します。
自分の書き方が悪かったです。
入力エラーの時にサブミット出来ないのは良いのですが、
正常値を入力した場合もサブミットが出来ず困っています。
申し訳ありませんが、よろしくお願いします。
0118nobodyさん
2007/08/31(金) 12:03:39ID:???asp.netのコントロール(ボタン、テキスト、RegularExpressionValidator)の組み合わせなら、
普通であれば出来るはずなので別な要因が影響してる気がするが。
http://ja.gotdotnet.com/quickstart/aspplus/samples/webforms/ctrlref/webctrl/regexvalidator/doc_regexval.aspx
Javascriptでボタンをdisableにしてるとか、
asp.netのコントロールではなくてHTMLのタグで書いてるとか。
イベント関係はいろいろな側面が影響するので、簡単なソースを
作って調査した方がいいよ。
0119113
2007/08/31(金) 12:06:22ID:???jsを追った所、スクリプトライブラリのバグで、
.netFreamworkをASPに再インストールしたら正常に動く様になりました。
お騒がせしました。
0120nobodyさん
2007/08/31(金) 16:01:28ID:???しかし、いきなり問題が出て来ました・・・・。
WebアプリケーションをそのままOKを押し作成しようとすると
Webアクセス失敗と出て来てしまいます。
この場合、どのように対処したらよろしいでしょうか?
0121nobodyさん
2007/08/31(金) 21:32:28ID:???IIS動いてて権限ちゃんと持ってるか?
つーか入門書買え
>>114
保存してるのはそれだけ?
ヘッダとか保存してないの?
0122nobodyさん
2007/09/01(土) 00:24:53ID:o4VEeCjw>ttp://lists.samba.org/archive/linux/2007-August/thread.html
はい、上記のようなイメージです。
階層化するためには他に必要なヘッダー情報をDBに追加する必要がありそうでうす。
In-Reply-ToやReferencesを調べることになりそうですが、どのように扱えば
よいのかの参考になるわかりやすいサイトご存知でしたら教えてください。
階層化しやすくるためのクラスやライブラリがあればなお助かります。
0123nobodyさん
2007/09/01(土) 18:58:31ID:???0124nobodyさん
2007/09/01(土) 21:16:37ID:???それそれ。
わざわざコーディングしなくても再利用できるフリーのクラスとかDLLとかありませんか?
0126nobodyさん
2007/09/02(日) 00:51:34ID:???そこをなんとかよろしくお願いします!
0127nobodyさん
2007/09/02(日) 01:08:55ID:???あきれてモノも言えん
0128nobodyさん
2007/09/03(月) 20:32:29ID:???↓はい次どうぞ
0129nobodyさん
2007/09/08(土) 22:51:29ID:XwRWsE9uこれが実際のサイトと違う場合はどうなるのでしょうか
更新可能なサイトとしてコンパイルしても更新されなくなるだけ?
@IT:ASP.NET 2.0が変えるWebアプリ開発の世界 第1回 周辺技術が支えるASP.NET 2.0の進化
http://www.atmarkit.co.jp/fdotnet/asp2review/asp2review01/asp2review01_03.html
に
>仮想ディレクトリ名を変更してしまうと、アプリケーション自体が正常に動作しなくなってしまう。
普通に動いてしまっているようなのですが、このあたりの詳細な記述があるサイトはないでしょうか?
インストーラの実行時に仮想ディレクトリの名前を確定したく簡単な方法を探しています。
0130nobodyさん
2007/09/10(月) 21:02:18ID:slz4gROCselect count(*) from table の結果を、ラベルに出力したいのですが
サンプルありませんか?できれば .aspx.vb 側でコードを書くのでなく
.aspx側(ただし、<script></script>の中は不可)で出力するコードを書きたい。
書く方法があるのか、そういう方法ではNGなのかよくわかりません。
サンプルのアクセス先でもよいので教えてください。
よろしくお願いします。
0131nobodyさん
2007/09/10(月) 21:42:17ID:???インラインコードモデルで書きたいってこと?
http://www.microsoft.com/japan/msdn/asp.net/tips/codebehind/
0132nobodyさん
2007/09/10(月) 21:52:18ID:???どうもインラインコードモデルじゃむりっぽいかもしれないので、コードビハインド可で質問
しなおします。
GridViewのサンプルはたくさんあるので書き方がわかるんですが
select count(*) from Tablexxx の結果をラベルに代入するサンプルが見つからない。
どなたかご存知でしたら教えて。
0134nobodyさん
2007/09/10(月) 22:08:03ID:???すみません、SQL Server 2000 でした。
0135nobodyさん
2007/09/10(月) 23:55:16ID:???0136nobodyさん
2007/09/11(火) 01:49:13ID:???0137nobodyさん
2007/09/11(火) 13:42:38ID:???どうせLabelにはデータソース指定がないからGridViewみたいにコーディングレスじゃ割り振れないってだけだろ。
普通にSQL発行して戻り値でSELECT結果返す関数作って
その戻り値をLabelに入れるなりなんなりすればいいだけ。
Label1.Text = GetSqlquery();
でいいだろ。
0138nobodyさん
2007/09/11(火) 20:34:07ID:jV5pYbSSサンキュー!
そうでした、単純にクエリーの実行結果を得る方法さえわかれば
どうってことないことでした。
0139nobodyさん
2007/09/12(水) 16:40:18ID:???でwebアプリケーションを開発しています
現在、モバイルWebアプリケーションを作成しているのですが
状態管理のセッションキーがURLに埋め込まれますが
このセッションキーの埋め込み位置を変更することは
できないでしょうか?
例:
http://www.○○○.com/mobile/(セッションID)/index.aspx
↓
http://www.○○○.com/mobile/index.aspx?session=セッションID
という感じにできませんか?
おわかりの方がおられればぜひご教示ください。
0140nobodyさん
2007/09/12(水) 23:00:57ID:???Panelの中にUpdatepanel、Updatepanelの中で<div> </div>で囲んだ
Gridviewコントロールを配置しています。Gridviewで表示した表は
一定間隔で自動更新表示(タイマー使用)しています。
ブラウザ側のスクロールバー位置はMaintainScrollPositionOnPostback="true"
により同じ位置を保持可能ですが、ヘッダー固定したGridView側のスクロール
バー位置が上に戻ってしまいます。内部のスクロールバー位置ももとの位置を
保持させるにはどのようなコードを追加すればよいのでしょうか。
ご存知の方、おしえてください。
0141nobodyさん
2007/09/12(水) 23:52:58ID:???ルート演算子「~」とかがおかしくなった気がする。
MSDNあたりでこれ関係の記述を見た記憶が。
>>139
自分でセッションの代わりを作らない限り無理だと思う。
で、絶対パスでセッションが切れるとかリダイレクトとかの問題なら
解決策はあるが、見た目の問題とかならしらね。
>>140
MaintainScrollPositionOnPostback="true"で作成される
JavaScriptと同じ事をやればいい。
Hidden項目2つ(x,y)用意してGridViewを囲んでるdivの(javascriptの)
onscrollイベントで縦・横位置を記憶するJavascriptを作る
で、次に縦・横位置を復元するjavascriptを用意する。
ここまでは、UpdatePanelだろうが通常のポストバックだろうが同じ。
次に通常のポストバックなら縦・横位置を復元するjavascriptを
Page.ClientScript.RegisterStartupScriptで呼べばいいが、
UpdatePanelの場合は非同期通信で作成されるJavascriptの
endRequestをフックするか、ASP.NET側のScriptManager.RegisterStartupScript
あたりで非同期通信後に呼ぶ。
まぁ、GridViewが複数同一ページ内にある場合とか考えても、
Hidden項目がその分必要になるから、スクロールしているdivを
カスタムコントロール化するべきだと思うが。
ScriptManager.RegisterStartupScript
0142nobodyさん
2007/09/13(木) 23:05:53ID:f7p5yovkWebサイトプロジェクトと、Webアプリケーションプロジェクトの
どっちで作るほうがいいの?入門書見たらWebサイトプロジェクトで
説明してるものばかりだけど…
0143nobodyさん
2007/09/14(金) 01:00:26ID:???ありがとう。
divの(javascriptの)
<div onscroll=..... てところが書けない。
onscrollという属性が予約語でないのか、エラーになります。
どのようにすればよいのでしょうか?
0144nobodyさん
2007/09/14(金) 02:35:05ID:CiMbiaO2Cで作成したネイティブのDLLを参照する必要があり、それを入れたいです。
他にもBinにログファイルを作成する.NETアセンブリもあったりするのですが問題ありますでしょうか?
(ASP.NETアプリからはそのCのDLLのラッパを呼び出している。ラッパはBinフォルダの中にある。)
サイト
Bin
native.dll
wrapper.dll
0145nobodyさん
2007/09/14(金) 02:52:17ID:???そいつはまずい。
まじで。
0146nobodyさん
2007/09/14(金) 10:10:05ID:???それ、XHTMLに準拠しているかの検証エラーなだけなので
気にしないで進めろ。
XHTMLに準拠が気になるなら、
・Javascriptでdivのイベントに処理を割り付ける
document.getElementById(???).onscroll = function ・・・
・divにrunat="server"(Panelコントロールでもいい)を付けて
ASP.NETコントロールにしてAttributes("onscroll")でJavaScript
を文字列で書き込む。
好きな方でやればVSのデザイン時にXHTML検証でエラーは出ない。
0147nobodyさん
2007/09/14(金) 22:48:45ID:???んーー、非常に勉強になりました。
アドバイスの通り試行錯誤してみます。
重ね重ね本当にありがとうございました!!
0148nobodyさん
2007/09/14(金) 23:43:51ID:???スクロールバーを表示している<div>をUpdatePanelのすぐ外に
置いてスクロールの内部を非同期通信させる方法で対応できる
ならそれが簡単かも。
UpdateProgressを使ってたり、ポストバックの更新時、UpdatePanelの入れ子とかで
内部表示の幅がが一時的に小さくなったり、divが再描画されたりすれば
スクロール位置は戻るので現在の処理が絡むので分からんけど。
まぁ、>>141の内容と組合せるとかすれば出来ない事は無いだろうけど。
0149nobodyさん
2007/09/17(月) 03:52:15ID:???一瞬動かないものなのかと思ってしまいました。 まさかMS非推奨、とかじゃないですよね?
0151nobodyさん
2007/09/17(月) 09:30:35ID:???<%= =>って<% %> レンダリング ブロックのことか?
普通に<script type="text/javascript">alert('<%="aaa" %>');</script>で出力されるが。
よくわからん。
0152nobodyさん
2007/09/17(月) 15:27:31ID:???0153nobodyさん
2007/09/24(月) 16:52:06ID:???Public Shared Function OracleRead(ByVal wSql As String) As Object
cnn = New OracleConnection
cnn.ConnectionString = "hogehoge"
cnn.Open()
cmd = New OracleCommand
cmd.Connection = cnn
cmd.CommandType = CommandType.Text
cmd.CommandText = wSql
OracleRead = cmd.ExecuteReader
End Function
こんな感じの繋ぎ方で、Oracleに接続して結果セットを得ているのですが、この結果セットの
フィールド名はこのオブジェクトから得ることができるのでしょうか?
Dynasetで結果を得ていたときは 結果セット.FieldName(i).ToString で得られていました。
同じようなプロパティはあるのでしょうか?
0154nobodyさん
2007/09/24(月) 22:53:03ID:???そのreturnのObjectを素直にOracleDataReaderに
してるのならGetNameで。
DataAdapterで変換してるのなら変換後の型の
メンバをMSDNで調べてください。
0155nobodyさん
2007/09/25(火) 16:35:24ID:???VS2005でクライアントの「WindowsFormアプリ」と「Asp.NETWebサービス」を(ともにC#)
共存させるソリューションを作っているのですが,
クライアントの参照設定->右クリック->Web参照の追加
で「Asp.NETWebサービス」を追加したのですが,
[WebMethod]で指定した関数を呼び出すことができません.
WebServiceのクラスがMySeriviceの場合
MyService ms = new MyService();
はエラーを吐かずに実行できるのに.
string str = ms.HelloWorld();
は次のエラーと警告を出します.
・無効なトークン '(' が クラス、構造体またはインターフェイスのメンバ宣言で使用されています。
・WebServiceBindingAttribute が プロキシ クラスで必要です。
WebServiceBindingAttribute をどのように作成すればいいでしょうか
0157155
2007/09/25(火) 18:24:50ID:???[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
これがWebMethodのコピペです,
間違ってはないと思うのですが
MyServiceを参照する際,
MyS まで入力して「Ctrl+Space」を押すと候補一覧に「MyService」が表示されるのですが.
MyService ms = new MyService();
をした後
m まで入力して候補を探しても 「ms」 は見つかりませんでした.
もちろん ms まで入力して「.」を押してもメソッド一覧が表示されませ.
しかしオブジェクトブラウザでMyServiceを見たらHelloWorldメソッドが登録されているので,
なんだかもうわからない状態です...
0158nobodyさん
2007/09/25(火) 20:54:14ID:???localhost.MyService ms = new localhost.MyService(); のように指定した気が
0160155
2007/09/25(火) 21:24:54ID:???usingを指定して,すでに名前空間は解決しているつもりでした.
名前空間と言えば
[WebService(Namespace = "http://kaigen.org/")]
WebServiceで記述されているこれは使用するのでしょうか?
0161155
2007/09/26(水) 03:15:18ID:???WebServiceクラスを呼び出しているところを
普通のクラスファイルじゃなくて,
Windowsフォームテンプレートを用いで作成したクラスからなら
呼び出せることがわかりました.
原因は不明ですが,とりあえずこれで動くので,
これで作成しようと思います.
0162nobodyさん
2007/09/26(水) 15:32:27ID:???0163nobodyさん
2007/09/26(水) 21:02:25ID:yYWQHXI+作成したいと思っています(使用言語C#)。
ブラウザの左側にTreeviewを表示(例menu.aspx)し、上位ノードを右クリック
して「新規作成」をクリックすると、新たなノードを作成するために必要な
パラメタの入力を促すウィザードまたは入力可能なダイアログを表示する。
新たなノードを作成する際にパラメタとして、ノード名、DB名、Table名程度を
入力し(それ以外はシステムで決まっている値とする)、サブノードが出来上がる
というかんじです。右側はGridViewでDBのテーブルを表示します。
左側(menu.aspx)をどうすればよいか悩んでいます。
参考になるサイトがあれば教えてください。またご存知であればご教授ください。
よろしくお願いします。
0164nobodyさん
2007/09/26(水) 22:57:49ID:???技術が無いんなら「自分でできる」所までまずは
作りましょう。それから出来ない点のみを質問しましょう。
改造は必要だがこの辺を参考にしてください。
ttp://www.codeproject.com/aspnet/xtreeview.asp
自作するなら、Treeviewを表示→(右クリック→メニュ)→(ダイアログ)→ポストバック
→Treeviewを更新で括弧以外簡単だと思うが。
リンクの右クリックメニューはライブラリあたりで、右クリック時にノード情報退避して、
ダイアログは別ウインドウかレイヤ(<div>タグにstyleでPOSITION:absolute)あたりで
表示させれば良いと思います。
面倒なら商用が色々とありますので購入してください。
ttp://www.componentsource.co.jp/products/telerik-rad-treeview/index.html
0165nobodyさん
2007/09/26(水) 23:27:43ID:???うわっ!スゴイ!!十分に参考になります。
codeproject.comは知っていましたが、辿り着けなかった・・・。
商用のものはすごいですね。資金がないため購入はできませんが
とても参考になります。本当にありがとうございました。
0166nobodyさん
2007/09/27(木) 05:38:58ID:7u8fuvQlテキストボックスのonkeypressでEnterを捕捉し、ボタンが押下されたときのサーバ側のイベントを呼ぶように
クライアントスクリプトを書こうと思ったのですが、よく分かりません。
- サーバ側のイベント
void btnExecute(object sender, EventArgs e){
//proc
}
- テキストボックスでEnerキーが押されたときにコントロールを指定してポストバックする
<asp:TextBox 。。。 onkeypress="if(エンターキーが押された)__doPostBack('btnExecute');"></asp:TextBox>
のようにすればいいのかな。と思ったのですがうまくいきませんでした。
クライアントコールバックではなく、単純にボタンを押されたときと同じにしたいのですが
どのようにすればよいのでしょうか?
0167nobodyさん
2007/09/27(木) 10:41:16ID:???<asp:Button>はUseSubmitBehavior="False"でない時、
HTML上は<input type="submit">で出力されますがこの場合
他のコントロールと異なり直接「__doPostBack」は呼ばれずに
formのSu・・・・・・・・・めんどくせ。
興味があるんなら自分で調べてみてください。
で、UseSubmitBehavior="False"にして__doPostBackするなり
ASP.NETのjavascriptのイベント処理で解決する事も可能だが
一番簡単なのはコントロールを直接クリックすればいいだけ。
.Net側
text.Attributes("onkeypress") に "aaa('"+ Button.ClientID "+)"
javascript
function aaa(objName) {
if(エンターキーが押された) document.getElementById(objName).click();
}
.Net側はHTML上のボタンのID名を取得の為に処理しているだけなので、
aspxの<asp:TextBox onkeypress="ここ"だけに入力したいとか言われそうだが
それも可能なので調べてみてください。
0168166
2007/09/27(木) 22:07:24ID:7u8fuvQlClientID=エレメントのIDなページ構成なので
asp:TextBoxに
onkeypress="if(エンターキーが押された) document.getElementById(''btnExecute').click();"
で対応できました。
サーバ側でプログラムでJavaScriptを書くのってTry&Errorし辛くて不便ですよね
スクリプト内部もタイプセーフ(JavaScriptセーフ?)に書ければいいのに。と思った。
0169nobodyさん
2007/10/02(火) 00:54:30ID:???TreeViewについて質問させてください。
[質問内容]
UpdatePanel内にTreeViewを配置した時にTreeViewのPopulateイベント
で同一UpdatePanel内の別のコントロールに値をセットできません。
ViewStateも利用できない状態です。
他に、Populateイベントを有効にするとTreeNode以外のボタン押下時
イベントも同時に動いてしまうのも悩みです。
どなたか同じような問題を解決した方がいましたらご教示ください。
宜しくおねがいいたします。
0170nobodyさん
2007/10/02(火) 20:58:52ID:???同一UpdatePanel内のPopulateイベントで
Me.TextBox1.Text = e.Node.Text
で試してみたがセットできるんだが。
まぁ、そもそも
ttp://cs.gogo-asp.net/blogs/naoki/archive/2007/01/24/UpdatePanel-_B330F330C830ED30FC30EB300A4E67302952287567304D306A304430B330F330C830ED30FC30EB30_.aspx
と言うように正確な情報も無ければ、解決には様々な要因が絡むパターンなので
関連する部分のソースでも無い限り答えるのは無理だけどね。
リンク先の対応策をよく理解してから自分で調べるといいと思います。
0171nobodyさん
2007/10/02(火) 23:20:01ID:???ありがとうございます。
単純な事でしたが、EnableClientScriptがtrueになっている事が原因でした。
EnableClientScriptをfalseにする事でコントロールに値をセットする事や
ViewStateに値をセットする事ができました。
今回はPopulateイベントで別のコントロールに値をセットするという仕様
でしたが、一度展開したノードではPopulateイベントが発生しなく
なるため、2度目以降のノード選択時に別のコントロールに値をセット
できなくなってしまったので、Expandedイベントを利用しました。
PopulateイベントからノードのPopulateOnDemandプロパティにtrueを
設定しても一度展開された扱いになってしまい現象変わらず。
(該当ノードを削除して再度同じノードを作成すればいいかも知れま
せんが次にコードを見た人がつら過ぎるコードになるので実装せず)
0172nobodyさん
2007/10/04(木) 14:17:51ID:HVPnYgkbPHPユーザにお勧めの言語があれば教えてください
UNIXが優位だったからPHPをはじめたのにいつのまにかWINDOWSに抜かれてるなんてorz
0173nobodyさん
2007/10/04(木) 17:55:01ID:???ASP.NETなら C#とJavaScriptやっとけばいいんじゃない?
0174nobodyさん
2007/10/04(木) 22:00:36ID:???VB.NETも同じくらい多いけど、言語的にはC#のほうがPHPに近い。
0175nobodyさん
2007/10/05(金) 05:43:34ID:???VB糞
0176172
2007/10/05(金) 15:38:56ID:???>>173-175
レスどうもありがとうございます
C#のほうが近いとのことなのでC#でいきたいと思います
帰ったら開発環境とIISインストールして早速遊ぼうと思います
0177nobodyさん
2007/10/06(土) 03:15:56ID:???バインド画面のリストに表示するようにするには、どうしたらいい?
属性?それともインターフェイス?
0178nobodyさん
2007/10/06(土) 11:40:13ID:???質問の意図が「プロパティを使いたい」のか「リストに表示したい」のか
分からんけどControlParameterのPropertyNameで選択したリストに
表示されなくても直接UserControlで作成したプロパティ名を入力すれば
使えたはず。
リストに表示したいと言うのも出来たはず。
おれは動的にControlParameterを発生させるので、ど忘れして思い出せない。
って、事でこのスレの詳しい人に任せます。
0179177
2007/10/06(土) 22:11:06ID:???thxです。コレ手書きOKなのね。
さらにリストから選択できれば言うことないので、誰かヒントお願いします。
ちなみに Control にしたとき、下記のようにコントロール名が2行づつ表示されるのは常識なんですか?
GridView1
GridView1
0180nobodyさん
2007/10/06(土) 23:14:35ID:???0181nobodyさん
2007/10/07(日) 00:39:00ID:???0182nobodyさん
2007/10/07(日) 02:05:08ID:???プロパティウィンドウの使い方が分かってないんじぇね?
プロパティウィンドウ最上部の雷マークで切り替えてイベント追加できるから
0184nobodyさん
2007/10/07(日) 23:30:53ID:???0185180
2007/10/07(日) 23:47:37ID:???>>182
説明がわるくてすみません。
自作のWebUserControlをWebFormに貼り付けると、イベント・プロパティとも
プロパティウィンドウに表示されません。(雷ボタンも表示されない)
ちゃんとpublicプロパティやイベントは書いてます。
>>183
ということはC#ではできないのですかね?
0186nobodyさん
2007/10/08(月) 03:27:19ID:???あれはだな、・・・
0187nobodyさん
2007/10/08(月) 16:21:04ID:???0188nobodyさん
2007/10/13(土) 12:20:47ID:cIDXI8N9ASP1.0でフォーム認証を試そうとして↓をWeb.Configに
<authentication mode="Forms" >
<forms loginUrl = "login.aspx" />
</authentication>
<location path="checkout.aspx">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
を追加したのですが”構成セクションlocationを認識できません”とエラーになります
何が原因でしょうか
0189nobodyさん
2007/10/13(土) 15:53:32ID:???単純に、locationが認識できないと言う時のエラーだから、
location要素の書く位置間違ってるんじゃねーの?
configurationの直下に書いてるか?
とりあえずは、Web.Configを省略せずに書いてもらわんと分からん。
0190nobodyさん
2007/10/13(土) 20:41:18ID:cIDXI8N9Web.ConfigのXML自体あまり理解できていないと思うので答えが曖昧かもしれませんが
一応<configuration>のステートメント内には収まっていると思います
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<compilation defaultLanguage="c#" debug="true" />
<customErrors mode="RemoteOnly" />
<authentication mode="Forms" >
<forms loginUrl = "login.aspx" />
</authentication>
<location path="checkout.aspx">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
0191190続き
2007/10/13(土) 20:45:39ID:cIDXI8N9enabled="false"
requestLimit="10"
pageOutput="false"
traceMode="SortByTime"
localOnly="true"
/>
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;user id=sa;password="
cookieless="false"
timeout="20"
/>
<globalization
requestEncoding="utf-8"
responseEncoding="utf-8"
/>
</system.web>
</configuration>
0192188
2007/10/13(土) 20:53:54ID:cIDXI8N9できました!
本当にconfiguration”直下”なんですね
ご教示有難うございます。
どちらにしても、このXML自体あまり理解できていないようなので
勉強しなおしてみます。
0193nobodyさん
2007/10/13(土) 21:04:39ID:???<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<compilation defaultLanguage="c#" debug="true" />
<customErrors mode="RemoteOnly" />
<authentication mode="Forms" >
<forms loginUrl = "login.aspx" />
</authentication>
<trace ・・・ />
<sessionState ・・・ />
<globalization ・・・ />
</system.web>
<location path="checkout.aspx">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
</configuration>
VS2005だから.net2.0でしか確認できんけど、で、いけると思う。
locationの配下に無い<system.web>はサイトルートを含む全ての
ファイルとフォルダに対する指定だから<location path="ルートパス">が
指定されてる意味になるから、その中に<locationが入れ子されると
意味不明な指定になる。
0194nobodyさん
2007/10/13(土) 21:06:25ID:???0195195
2007/10/15(月) 04:26:21ID:1vOjoM00VS2005
VB.net
ASP2.0(だと思います)
なぜか*.aspxの他に自分で追加した*.vb内のClass内で"テスト"のように「""」で括った文字列が
文字化けの状態で変数に格納されてしまい困っています。
ファイル名:Class1.vb
Imports Microsoft.VisualBasic
Public Class Class1
Public Function func() As String
Return "テスト"
End Function
End Class
ファイル名:default.aspx
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim s As String
s = "テスト"
Diagnostics.Debug.WriteLine(s)
Dim cls As Class1 = New Class1
Diagnostics.Debug.WriteLine(cls.func())
End Sub
出力内容
テスト
?e?X?g
0196195
2007/10/15(月) 04:27:11ID:1vOjoM00前提条件としてDBにアクセスするためDataSet1.xsdがプロジェクトに追加してあります
これに付随してweb.configに以下の内容を追加してあります
追加内容:<globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="utf-8"/>
理由:DataSet1.xsdを作成するとコンパイルエラーが発生したため
コンパイルエラーの内容:エラー 1 入力 xml ファイルの内容を DataSet に変換できません。名前の先頭に '0' (16 進数値 0x30) を使用することはできません。 行 32、位置 168 です。 C:\Users\*****
プロジェクトからDataSet1.xsdを削除し、関連コードを削除し実行すると文字化けはなくなりますが、
DBを使用するためそれはできないです。
また、default.aspx内にClass1の定義を貼り付けたら問題なく表示されますが、
なぜか別ファイルに分離(Class1.vb)すると文字化けします。
まとめますと上記のサンプルコードは単体では再現せず、
DataSet1.xsdにテーブル定義を追加し、コンパイルエラー回避のためglobalizationを追加すると再現するようになります。
この状態ですと自分で追加した*.vb内でDim s As String="テスト"をすると
sに文字化けしたものが格納されます。
1週間ほど悩みましたが全く進展がなく暗礁に乗り上げました。
ご存じの方お教えいただけませんか?
よろしくお願いします。
0197nobodyさん
2007/10/15(月) 06:28:13ID:???globalization requestEncoding="utf-8" でググったら最初に出て来た。
0198nobodyさん
2007/10/15(月) 12:31:20ID:???なにも理解せずにデータセット「.xsd」の不具合対策を入れたんだろうな。
<globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="utf-8"/>
VB.NETの場合、.aspxや.aspx.vbは(デフォルトなら)HTMLをUTF-8で出力する
関係上、文字コード「UTF-8 BOM付き」で保存されるんだが、「新しい項目の追加-クラス」で
追加された「Class1.vb」は、文字コード「Shift-JIS」で保存されます。
(「新しい項目の追加-クラス」の「Shift-JIS」はVSのバグっぽいが)
このように.aspx.vb「UTF-8 BOM付き」、Class1.vb「Shift-JIS」と文字コードが混在していても
通常は動作する時に文字コードを自動判別するので問題は起きないのですが、
<globalization fileEncoding="utf-8"/>を追加すると、プロジェクト内の全てのファイルを「utf-8」
で読もうとする為、当然「Shift-JIS」で保存されているClass1.vbの2バイト文字は化けます。
余談だが、レコードセット「.xsd」の不具合の方もこれに若干似ていて、「UTF-8 BOM無し」で保存
されるから日本語のフィールドやテーブル名があると起きる。
上記から導き出せる解決策
1.globalizationで「.xsd」の不具合修正を追加したまま「Class1.vb」を「UTF-8 BOM付き」にする。
2.globalizationを削除して、「.xsd」を「UTF-8 BOM付き」で保存する。
3.globalizationを削除して、「.xsd」と「Class1.vb」を「UTF-8 BOM付き」で保存する。
他にも方法はあるがこの中から選べばいい。
(「.xsd」はShift-JISで保存でも解決したり)
文字コードの変更方法は、テキストエディタでも良いしVSからなら
該当ファイルを開いて「ファイル-名前をつけて保存-保存ボタン右の▼-エンコードつきで保存-エンコード」
0199195
2007/10/16(火) 21:26:18ID:???>>198
おかげさまで無事解決しました。
対処としては
>2.globalizationを削除して、「.xsd」を「UTF-8 BOM付き」で保存する。
これを選択しました。
>3.globalizationを削除して、「.xsd」と「Class1.vb」を「UTF-8 BOM付き」で保存する。
こちらについては
globalzationを消し去ったことでClass1.vbのShift-JISを自動認識して読み込んでくれているから
だと思うのですが特にUTF-8 BOM付きに変換しなくともく正常に動作しました。
ありがとうございました。
0200nobodyさん
2007/10/17(水) 00:16:33ID:???悪い行数制限に引っかかりそうだったので省略したが、なんでわざわざ「3.」の
選択肢も書いたかと言うと、C#だと「新しい項目の追加-クラス」で作成したファ
イルはデフォルトで「UTF-8 BOM付き」になる。
マイクロソフトが不具合と認めている報告は今の所見つからないが。
レコードセット「.xsd」の「UTF-8 BOM無し」はC#でもVBでも起きる問題をマイクロ
ソフトは不具合と考えているぽい。
で、ここから考えるにVSの動きとしては基本的にファイルを「UTF-8 BOM付き」で
保存する動きなので、そう言った面を気にするならって事で「3.」を追加した。
とりあえず動作する事が目的なら
>globalzationを消し去ったことでClass1.vbのShift-JISを自動認識して読み込んでくれているから
>だと思うのですが特にUTF-8 BOM付きに変換しなくともく正常に動作しました。
この理解で問題ないと思います。
0201195
2007/10/17(水) 01:45:19ID:???なるほど。
なんで
>3.globalizationを削除して、「.xsd」と「Class1.vb」を「UTF-8 BOM付き」で保存する。
の選択肢がわざわざ用意されているのかと疑問に思っていました。
要約すると
・vbで「新しい項目の追加-クラス」で作成されたファイルのエンコードが既定が「Shift-JIS」であり
C#の場合は「UTF-8 BOM付き」であること
・今後の流れとしてはおそらく既定が「UTF-8 BOM付き」で保存する流れであることから
「UTF-8 BOM付き」で保存するのも吉
ということですね。
現在わかっている不明な動作としては
・VBとC#で「新しい項目の追加-クラス」での保存形式が違う
・「.xsd」が「UTF-8 BOM無し」で保存される
であり、上の2つは不具合、もしくは不具合に近い動作であり、なぜかを追求する必要はなく、
とりあえず>>199の方法で対処だけしておけばよい。
ですね。
非常に参考になりました。
間違っている部分がありましたら指摘していただけるとありがたいです。
0202nobodyさん
2007/10/17(水) 13:59:27ID:ZhgS5P3I0203nobodyさん
2007/10/17(水) 16:28:04ID:???その認識で良いと思います。
マイクロソフトの正式な回答では無いのでどれを
選択するかは自由ですが。
>>202
結論から言えば自前だね。
そもそも、検索エンジンの空白でAND検索って形態素解析の
ほんの一概念でしかないのに「とか」と言われても。
とりあえず、空白でAND限定なら入力された文字列を
Split関数で配列化してForEachで回して各文字列の頭に「AND フィールド名=」
を付加してwhere作ればすぐ出来ると思う。
0205nobodyさん
2007/10/18(木) 21:03:24ID:???GridViewでデータを表示し、編集ボタンクリック。
編集モードで更新ボタンクリックして更新中にエラーが発生したら
その趣旨メッセージとOKボタンのダイアログボックスを表示。
意外とサンプルが見つからず。どなたか教えてください。
0206nobodyさん
2007/10/18(木) 22:25:05ID:???JavaScriptとかでポーリングするつもりかい。
0207nobodyさん
2007/10/18(木) 23:01:54ID:???if (エラー時)
{
page.ClientScript.RegisterStartupScript(page.GetType(),"ErrorAlert", "alert('エラー');", true);
}
で処理を抜けて、画面に描写を行わせればJavascriptが動いてメッセージボックスが
表示される。
0208nobodyさん
2007/10/19(金) 20:42:03ID:???ありがとう。
おかげさまで調べやすくなりました。
そのままでは動かなかったけど、次のように書いたらOKとなりました。
ScriptManager.RegisterStartupScript(Me.Page, Me.GetType(), "ErrorAlert", "window.alert('エラーだぴょん!');", True)
0209nobodyさん
2007/10/19(金) 21:53:35ID:???悪い。間違ってた。
C# ClientScript.RegisterStartupScript(this.GetType(), "ErrorAlert", "alert('エラー');", true);
VB ClientScript.RegisterStartupScript(Me.GetType(), "ErrorAlert", "alert('エラー');", True)
だったわ。
つうか、ScriptManagerってAjax利用してるのか?
ついでだから教えとくけど、ScriptManagerはAjaxのScriptManagerコントロール
がある時しか認識しないぞ。
動作的には簡単に言うと
ScriptManager.RegisterStartupScriptはajaxの非同期通信直後とページ描写時に
javascriptが吐き出される。
ClientScript.RegisterStartupScriptはページ描写時にjavascriptが吐き出される。
って感じだからタイミングによって使い分ける必要がある。
詳しくは自分で調べてみるといいよ。
Ajax非同期通信後に
0210nobodyさん
2007/10/20(土) 16:11:30ID:bogh6jgRアプリケーションを配置したのですが、初回起動時毎回
すごい時間がかかります。(=コンパイルされている様子)
どの点を見直せばよろしいでしょうか?
2003Server ASP.NET2.0
0211nobodyさん
2007/10/20(土) 17:30:47ID:???■ このスレッドは過去ログ倉庫に格納されています