07/09/27 05:38:58 7u8fuvQl
テキストボックス内でキーボードのEnterを押したら、ボタンが押下されたようにしたいです。
テキストボックスのonkeypressでEnterを捕捉し、ボタンが押下されたときのサーバ側のイベントを呼ぶように
クライアントスクリプトを書こうと思ったのですが、よく分かりません。
- サーバ側のイベント
void btnExecute(object sender, EventArgs e){
//proc
}
- テキストボックスでEnerキーが押されたときにコントロールを指定してポストバックする
<asp:TextBox 。。。 onkeypress="if(エンターキーが押された)__doPostBack('btnExecute');"></asp:TextBox>
のようにすればいいのかな。と思ったのですがうまくいきませんでした。
クライアントコールバックではなく、単純にボタンを押されたときと同じにしたいのですが
どのようにすればよいのでしょうか?
167:nobodyさん
07/09/27 10:41:16
>>166
<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="ここ"だけに入力したいとか言われそうだが
それも可能なので調べてみてください。
168:166
07/09/27 22:07:24 7u8fuvQl
詳細な説明ありがとうございます。
ClientID=エレメントのIDなページ構成なので
asp:TextBoxに
onkeypress="if(エンターキーが押された) document.getElementById(''btnExecute').click();"
で対応できました。
サーバ側でプログラムでJavaScriptを書くのってTry&Errorし辛くて不便ですよね
スクリプト内部もタイプセーフ(JavaScriptセーフ?)に書ければいいのに。と思った。
169:nobodyさん
07/10/02 00:54:30
ASP.net2.0+AJAX.net2.0+C#で開発しています。
TreeViewについて質問させてください。
[質問内容]
UpdatePanel内にTreeViewを配置した時にTreeViewのPopulateイベント
で同一UpdatePanel内の別のコントロールに値をセットできません。
ViewStateも利用できない状態です。
他に、Populateイベントを有効にするとTreeNode以外のボタン押下時
イベントも同時に動いてしまうのも悩みです。
どなたか同じような問題を解決した方がいましたらご教示ください。
宜しくおねがいいたします。
170:nobodyさん
07/10/02 20:58:52
>>169
同一UpdatePanel内のPopulateイベントで
Me.TextBox1.Text = e.Node.Text
で試してみたがセットできるんだが。
まぁ、そもそも
URLリンク(cs.gogo-asp.net)
と言うように正確な情報も無ければ、解決には様々な要因が絡むパターンなので
関連する部分のソースでも無い限り答えるのは無理だけどね。
リンク先の対応策をよく理解してから自分で調べるといいと思います。
171:nobodyさん
07/10/02 23:20:01
>>170
ありがとうございます。
単純な事でしたが、EnableClientScriptがtrueになっている事が原因でした。
EnableClientScriptをfalseにする事でコントロールに値をセットする事や
ViewStateに値をセットする事ができました。
今回はPopulateイベントで別のコントロールに値をセットするという仕様
でしたが、一度展開したノードではPopulateイベントが発生しなく
なるため、2度目以降のノード選択時に別のコントロールに値をセット
できなくなってしまったので、Expandedイベントを利用しました。
PopulateイベントからノードのPopulateOnDemandプロパティにtrueを
設定しても一度展開された扱いになってしまい現象変わらず。
(該当ノードを削除して再度同じノードを作成すればいいかも知れま
せんが次にコードを見た人がつら過ぎるコードになるので実装せず)
172:nobodyさん
07/10/04 14:17:51 HVPnYgkb
PHPしかやったことないのですがASPをやろうと思ってます
PHPユーザにお勧めの言語があれば教えてください
UNIXが優位だったからPHPをはじめたのにいつのまにかWINDOWSに抜かれてるなんてorz
173:nobodyさん
07/10/04 17:55:01
PHPしかやったことが無い とか関係あるか分からないけど
ASP.NETなら C#とJavaScriptやっとけばいいんじゃない?
174:nobodyさん
07/10/04 22:00:36
C#が解説とサンプル多くていいと思うよ。
VB.NETも同じくらい多いけど、言語的にはC#のほうがPHPに近い。
175:nobodyさん
07/10/05 05:43:34
PHP ≒ Java ≒ C♯
VB糞
176:172
07/10/05 15:38:56
レスおそくなってすみません
>>173-175
レスどうもありがとうございます
C#のほうが近いとのことなのでC#でいきたいと思います
帰ったら開発環境とIISインストールして早速遊ぼうと思います
177:nobodyさん
07/10/06 03:15:56
パラメータソースとしてWebUserControlのプロパティを使いたいんだけど
バインド画面のリストに表示するようにするには、どうしたらいい?
属性?それともインターフェイス?
178:nobodyさん
07/10/06 11:40:13
>>177
質問の意図が「プロパティを使いたい」のか「リストに表示したい」のか
分からんけどControlParameterのPropertyNameで選択したリストに
表示されなくても直接UserControlで作成したプロパティ名を入力すれば
使えたはず。
リストに表示したいと言うのも出来たはず。
おれは動的にControlParameterを発生させるので、ど忘れして思い出せない。
って、事でこのスレの詳しい人に任せます。
179:177
07/10/06 22:11:06
>178
thxです。コレ手書きOKなのね。
さらにリストから選択できれば言うことないので、誰かヒントお願いします。
ちなみに Control にしたとき、下記のようにコントロール名が2行づつ表示されるのは常識なんですか?
GridView1
GridView1
180:nobodyさん
07/10/06 23:14:35
WebUserControlのイベントってデザイナで指定できないのですか?
181:nobodyさん
07/10/07 00:39:00
だれかエスパーを
182:nobodyさん
07/10/07 02:05:08
>>180
プロパティウィンドウの使い方が分かってないんじぇね?
プロパティウィンドウ最上部の雷マークで切り替えてイベント追加できるから
183:nobodyさん
07/10/07 23:25:26
WebUserControl使ったことあるやつなら >>180 が言ってることわかるだろ。
ちなみにC#な。
184:nobodyさん
07/10/07 23:30:53
わかるんなら答えてやれよw
185:180
07/10/07 23:47:37
>>181
>>182
説明がわるくてすみません。
自作のWebUserControlをWebFormに貼り付けると、イベント・プロパティとも
プロパティウィンドウに表示されません。(雷ボタンも表示されない)
ちゃんとpublicプロパティやイベントは書いてます。
>>183
ということはC#ではできないのですかね?
186:nobodyさん
07/10/08 03:27:19
ああ、ユーザーコントロールの枠で選択されちゃって、個々のコントロールが操作できないやつね。
あれはだな、・・・
187:nobodyさん
07/10/08 16:21:04
↑なんか概念的に間違ってるぞおまえ
188:nobodyさん
07/10/13 12:20:47 cIDXI8N9
初歩的な箇所で申し訳ないのですが質問させてください
ASP1.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を認識できません”とエラーになります
何が原因でしょうか
189:nobodyさん
07/10/13 15:53:32
>>188
単純に、locationが認識できないと言う時のエラーだから、
location要素の書く位置間違ってるんじゃねーの?
configurationの直下に書いてるか?
とりあえずは、Web.Configを省略せずに書いてもらわんと分からん。
190:nobodyさん
07/10/13 20:41:18 cIDXI8N9
>>189
Web.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>
191:190続き
07/10/13 20:45:39 cIDXI8N9
<trace
enabled="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>
192:188
07/10/13 20:53:54 cIDXI8N9
>>189
できました!
本当にconfiguration”直下”なんですね
ご教示有難うございます。
どちらにしても、このXML自体あまり理解できていないようなので
勉強しなおしてみます。
193:nobodyさん
07/10/13 21:04:39
>>190
<?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が入れ子されると
意味不明な指定になる。
194:nobodyさん
07/10/13 21:06:25
更新していなくて余計なレスしちまった。
195:195
07/10/15 04:26:21 1vOjoM00
環境は以下です。
VS2005
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
196:195
07/10/15 04:27:11 1vOjoM00
「?e?X?g」が文字化けでなぜか「テスト」と表示されないので悩んでいます。
前提条件として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週間ほど悩みましたが全く進展がなく暗礁に乗り上げました。
ご存じの方お教えいただけませんか?
よろしくお願いします。
197:nobodyさん
07/10/15 06:28:13
fileEncoding="shift_jis" にすると解消するというオチでは。。。
globalization requestEncoding="utf-8" でググったら最初に出て来た。
198:nobodyさん
07/10/15 12:31:20
>>195
なにも理解せずにデータセット「.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からなら
該当ファイルを開いて「ファイル-名前をつけて保存-保存ボタン右の▼-エンコードつきで保存-エンコード」
199:195
07/10/16 21:26:18
>>197
>>198
おかげさまで無事解決しました。
対処としては
>2.globalizationを削除して、「.xsd」を「UTF-8 BOM付き」で保存する。
これを選択しました。
>3.globalizationを削除して、「.xsd」と「Class1.vb」を「UTF-8 BOM付き」で保存する。
こちらについては
globalzationを消し去ったことでClass1.vbのShift-JISを自動認識して読み込んでくれているから
だと思うのですが特にUTF-8 BOM付きに変換しなくともく正常に動作しました。
ありがとうございました。
200:nobodyさん
07/10/17 00:16:33
>>199
悪い行数制限に引っかかりそうだったので省略したが、なんでわざわざ「3.」の
選択肢も書いたかと言うと、C#だと「新しい項目の追加-クラス」で作成したファ
イルはデフォルトで「UTF-8 BOM付き」になる。
マイクロソフトが不具合と認めている報告は今の所見つからないが。
レコードセット「.xsd」の「UTF-8 BOM無し」はC#でもVBでも起きる問題をマイクロ
ソフトは不具合と考えているぽい。
で、ここから考えるにVSの動きとしては基本的にファイルを「UTF-8 BOM付き」で
保存する動きなので、そう言った面を気にするならって事で「3.」を追加した。
とりあえず動作する事が目的なら
>globalzationを消し去ったことでClass1.vbのShift-JISを自動認識して読み込んでくれているから
>だと思うのですが特にUTF-8 BOM付きに変換しなくともく正常に動作しました。
この理解で問題ないと思います。
201:195
07/10/17 01:45:19
>>200
なるほど。
なんで
>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の方法で対処だけしておけばよい。
ですね。
非常に参考になりました。
間違っている部分がありましたら指摘していただけるとありがたいです。
202:nobodyさん
07/10/17 13:59:27 ZhgS5P3I
検索エンジンの検索窓みたいに(キーワードの間に空白を入れてAND検索とか)という機能を持つ検索ボックスを使いたいんですけど、この場合、自前でキーワードを解析してSQL文を組みてる必要がありますか?
203:nobodyさん
07/10/17 16:28:04
>>201
その認識で良いと思います。
マイクロソフトの正式な回答では無いのでどれを
選択するかは自由ですが。
>>202
結論から言えば自前だね。
そもそも、検索エンジンの空白でAND検索って形態素解析の
ほんの一概念でしかないのに「とか」と言われても。
とりあえず、空白でAND限定なら入力された文字列を
Split関数で配列化してForEachで回して各文字列の頭に「AND フィールド名=」
を付加してwhere作ればすぐ出来ると思う。
204:195
07/10/18 01:37:25
>>203
了解です、
細かな解説ありがとうございました。
205:nobodyさん
07/10/18 21:03:24
ASP.NET2.0, VisualStadio2005,C# or VB.NETを使ってます。
GridViewでデータを表示し、編集ボタンクリック。
編集モードで更新ボタンクリックして更新中にエラーが発生したら
その趣旨メッセージとOKボタンのダイアログボックスを表示。
意外とサンプルが見つからず。どなたか教えてください。
206:nobodyさん
07/10/18 22:25:05
サーバーサイドで動いてるのにダイアログボックスて。
JavaScriptとかでポーリングするつもりかい。
207:nobodyさん
07/10/18 23:01:54
>>205
if (エラー時)
{
page.ClientScript.RegisterStartupScript(page.GetType(),"ErrorAlert", "alert('エラー');", true);
}
で処理を抜けて、画面に描写を行わせればJavascriptが動いてメッセージボックスが
表示される。
208:nobodyさん
07/10/19 20:42:03
>207
ありがとう。
おかげさまで調べやすくなりました。
そのままでは動かなかったけど、次のように書いたらOKとなりました。
ScriptManager.RegisterStartupScript(Me.Page, Me.GetType(), "ErrorAlert", "window.alert('エラーだぴょん!');", True)
209:nobodyさん
07/10/19 21:53:35
>>208
悪い。間違ってた。
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非同期通信後に
210:nobodyさん
07/10/20 16:11:30 bogh6jgR
スタンドアロン環境でAP開発して、ファイルコピーにて
アプリケーションを配置したのですが、初回起動時毎回
すごい時間がかかります。(=コンパイルされている様子)
どの点を見直せばよろしいでしょうか?
2003Server ASP.NET2.0
211:nobodyさん
07/10/20 17:30:47
事前コンパイル
212:nobodyさん
07/10/20 18:59:16
>>210
ASP.NET コンパイルの概要
URLリンク(msdn2.microsoft.com)(VS.80).aspx
自動コンパイル(動的コンパイル)
メリット:
ソースをコピーすればいい。
ソースを配布先でテキストエディタも修正できる。
デメリット:
初めて要求時にコンパイルされる時間が掛かる。
埋め込み先コンパイル
メリット:
ソースをコピーすればいい。
ソースを配布先でテキストエディタも修正できる。
初めて要求時にコンパイルされる時間が掛からない。
デメリット:
ソースの一部でも修正したらコマンドラインで動的コンパイル時に発生するコンパイルと同じコンパイルを実行しなければならない。
事前コンパイル
(更新不可能な完全プリコンパイル・更新可能なプリコンパイル)
メリット:
初めて要求時にコンパイルされる時間が掛からない。
ソースを隠蔽する事が可能。
全ての画面を単一のDLLにするなどが可能。
更新可能なプリコンパイルなら、aspx、.ascxのみ変更可能。
デメリット:
windowsアプリの様にソースと配布用の実行ファイルを分けて管理などを考える必要がある。
簡単な説明するとこんな感じ。
詳細は上のURLで理解したうえで、自分で選んでください。
213:nobodyさん
07/10/20 19:51:27
しかし起動時にすごい処理してるってオチがあったりして…
214:nobodyさん
07/10/20 21:46:20 bogh6jgR
>>212
参考になりました。ありがとうございます!!!
215:nobodyさん
07/10/20 22:07:26
>>214
>211にも何か一言くらい...
216:nobodyさん
07/10/20 22:10:10 jIqTRPXl
ASPはわからない部分が多いので教えてください。
こういうのを作っています。
・フレームで画面を上下に分割
・上部に検索条件を指定するための入力フォームと検索ボタン
・下部にObjectDataSourceとGridView
上部で指定された条件を元にSQLのWHERE文を作成し、下部に渡したいと思っています。
こういう時はどういう処理が一般的でしょうか?
今のところ考えているのが上部で作成したWHERE文をセッション変数に格納し、
下部のDataSourceのSelectedMethodで指定しているメソッドの中で
If セッション変数 <> String.Empty Then
sql = sql & "WHERE" & Chr(13)
~ここで条件を追加~
End If
みたいにして条件を追加しようと思っています。
これが動作するかどうかは試せばすぐわかると思うのですが
一般的な処理の方法がこんな感じで合っているか気になります。
いかがでしょうか?
217:nobodyさん
07/10/21 01:32:40
フレームなんか使うな。
218:nobodyさん
07/10/21 01:52:59 1pk3RmdZ
せっかくのPostbackなんだから単一画面でしょう
219:nobodyさん
07/10/21 10:05:16
フレーム使わないでテーブルにぶち込むとか、<hr>で区切るとか汁!
220:216
07/10/22 00:25:54
>>217-219
とりあえず今回は上記の方法を採用しました。
動作としては今のところ問題ないようですのでこのままいきます。
ちなみになぜフレームを採用したかというと画面上部のフレームは
検索条件を指定する画面を表示するのですが
簡易検索条件入力フォームと詳細検索画面を切り替え、且つ、
下部は共通したGridViewを使用したかったためです。
ありがとうございました。
221:nobodyさん
07/10/22 01:51:40
今回は仕方無いにしても,今度はフレームを利用せずに
それらを実現できるように成長することを期待。
222:216
07/10/22 03:32:30
>>221
ケースバイケースケースで
上部のフレームの中身を差し替えることで
検索条件の指定方法を変えたいと思いフレームを採用しましたが、
そこまでフレームを非推奨なのにはなにかわけがあったりしますか?
今回は切り替えと、常に上部に表示させておきたいということで
フレームを採用しましたがそこまで否定派が多いとちょっと気になります。
223:nobodyさん
07/10/22 13:18:05
>>222
フレームについては宗教論争的な部分もあるんで他人から
強制させられるよりも自分で見つけたほうがいいよ。
とは言っても、あれなんで簡単に
・W3Cはframeに対して否定的な動き。
・1つのURIに1つの情報と言うのが理想的である。
・ユーザビリティ的にも、セキュリティ的にも低下する恐れがある。
URLリンク(java-house.jp)
・SEO関係の話
・完全ではないにしても(i)frameのメリットである「情報の部分再描画」はajaxで「スクロールによる表示箇所の分離」はcssで出来る。
とか色々、どれも否定する決定的な要因は無いのだが利用している側は大抵が「なんとなく」で使ってる場合が
多いので否定的な意見されるのが現実です。個人的には、上記のような事を理解した上で、デメリットを解決したり
無視できる状況を作り「フレームを使う」事によってしか生まれないメリットを追求する意思があるのならいいと思う。
上記は、HTML上の話だけだが更にASP.NETでフレーム開発になると以下が追加される。
ASP.NETのフレームワーク基本概念「postback」や「ViewState」は同一ページ内の処理を基本と
するため相性が悪い為、VS2003では選択できたフレームセットのテンプレートはVS2005では無くなりました。
VSから作れないだけでテキストエディタなどで作成することは可能ですが、別フレーム間の操作やデータ参照で
トラブルまたはASP.NETで作成する意味が無くなる場合があります。
URLリンク(karua.at.webry.info)
URLリンク(www.atmarkit.co.jp)
これを解決するにはHTML・CGIの知識とあわせてASP.NETの「イベント関係の理解」・「postbackやViewStateの内
部的な動き」「動的に作成されるJavascriptの理解」など通常フレームワークで隠蔽されている部分の知識が必要に
なる場合がほとんどです。
で、大抵ASP.NETでframeを使った際のトラブルなんて特殊な状況を想定できる人は少ないので、Webで質問しても
レスを貰う事も難しくなります。
224:nobodyさん
07/10/22 13:43:34
>>214
追加だが
現在、「自動コンパイル」で遅いと思っていて手軽に解決するなら
「埋め込み先コンパイル」が一番簡単です。
cd /d C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
Aspnet_compiler -v /仮想ディレクトリ名 -errorstack
を2003Serverのコマンドプロンプトで流せば全てのファイルに
自動コンパイルを行った状態になります。
225:nobodyさん
07/10/22 22:58:44
あとセッション使うと単純にやると各フレームで同時処理できないからそれも注意がいるかもよ。
226:nobodyさん
07/10/23 00:43:07
>>225
どういう意味でしょうか?
227:216
07/10/23 01:51:24
>>223
なるほど。
>>W3Cはframeに対して否定的な動き
盲目的に信じるのもあれですがW3Cが推奨しないということは
やはりそれなりの理由があるんでしょうね。
>>VS2003では選択できたフレームセットのテンプレートはVS2005
2005でなくなっていてびっくりしました。
やはりVSとしても推奨しない動きなんでしょうね。
今回とりあえずフレームで実装したのですが変更した方がよいでしょうね。
だとしたら>>216>>220に内容は書きましたがフレームを使用することで
画面上部に検索条件入力フォームを「常に」表示させていたのですが
これをフレームを使用せずに用件を満たす必要があります。
フレーム無しで画面上部に常に表示させていたいコントロールを配置する場合
どうすればよいでしょうか?
常に表示させておく必要がなければvisibleあたりを制御するだけでよいのですが。。
>>225
これは>>226さんと同じく気になります。
どういう意味でしょうか?
228:216
07/10/23 02:32:53
すみません全く別の質問よいでしょうか?
検索結果一覧の画面を作成するためにどのコントロールを採用すればよいかお教えください。
目的は以下のサイトのようなビューです。
URLリンク(www.st-image.com)
・ページングあり
・単純な行での一覧表示ではなく、横→縦にデータが並んで表示される
試したこと
・GridView
横に並んで表示できない
・DataList
自前でページング処理を記述する必要があり
・DetailsView & FormView
1レコードずつしか表示できない
一件DataListでもなんとかなると思うのですが自前で毎回全件を取得しないように気をつけたページング
処理を記述する必要があると言うところが腑に落ちません。
DataViewですとObjectDataSourceとObjectDataSourceのSelectedMethodを連携させることで
ページング処理を簡単に書くことができます。
なのにDataListでわざわざ自前でページング処理を書かなければならないというのが違和感です。
こういうサイトはどのようなコントロール&処理を実装しているのでしょうか?
229:nobodyさん
07/10/23 11:13:34
>>227
まず、海外も含めてインターネット上で公開されているWebサービスで上部にボタンなどが固定されている
実例が少ないことを考えれば固定する必要がなくても使いやすいシステムはできると言うことを念頭に置くべきです。
「画面内に必要な情報を集める」とか「検索処理をした後に検索のテキストボックスが常に見えている必要があるのか?」とか
それでも固定することにメリットがあると思うのならCSSで[overflow:autoとかposition:fixed(IE6対応にはjavascriptが必要)]
URLリンク(msdn2.microsoft.com)
(リキッドレイアウトにも対応)
は、数ある方法の無難な良い例になるので自分で解析してください。
Firefoxにfirebugアドオン入れれば解析も楽なはず。
もしくは、前のレスで言った「フレームを使う」事によってしか生まれないメリットを追求する。
各画面に同じレイアウト書かなきゃならんと言う開発側の問題はVS2005ならマスターページで解決する。
>>228
ObjectDataSourceを使ってる場合、GridViewだろうとページングの見た目は作成されるが処理は自前だけど。
SqlDataSourceなら処理部分まで自動で処理してくれるが、ボトルネックとか拡張性に問題があるので使い道はあまり無いが。
>処理を記述する必要があると言うところが腑に落ちません。
ASP.NETは魔法の杖じゃないから、普通にCGIで考えれば「必要な件数をDBから取得して」「必要な件数を表示する」と言うの
は当然でGridView+DataSourceはそれを処理しやすくなっているに過ぎないし。
だから、技術が無い・手軽になら既存のコントロールをベースにデザインを考えるしかない。
逆なら、クラスを継承するなり、カスタムコントロールなりで拡張すればいいだけ。
フレームワークの基本だと思うんだけどね。
1.ページング表示部を自作してDB検索してDataTableを作って「Repeater」コントロールで<div style="float:left;">を出力もしくは
DataListのDataSourceにDataTableを設定まで自分で作る。(中途半端にDataSourceなどの繋ぎに拘ると面倒になるので)
2.DataListを拡張(ユーザコントロール、カスタムコントロール)してDataSourceと連動するように作る。
(ググればカスタムコントロールを作っている人も良そうだが)
230:nobodyさん
07/10/23 11:57:47
Javascriptでaspを呼び出すことはできるのでしょうか。
Javascriptでクッキー処理 -引数つけてASP呼び出し→ ASP処理 → ASPでJS書き出し
という感じのことをやりたいのですが。
231:230
07/10/23 11:58:30 35vpnyji
age忘れましたすみません。
232:nobodyさん
07/10/23 13:19:48
>>230
引数つけてASP呼び出し
location.href('URLリンク(www.aaa.aspx?a=1)')
他は省略
>Javascriptでクッキー処理 -引数つけてASP呼び出し→ ASP処理 → ASPでJS書き出し
ってか、この各処理は同一のaspxでの話しを想定してるの?
クッキー処理はASPへのデータ引渡しの為に使うの?
つうか、ASP.NET以前に、「HTMLとCGI」の値の受け渡しに利用しようとしているんであれば
クライアントとサーバの切り分けが出来ていないように感じるんだがその辺は大丈夫?
そう感じた理由に「本来ならPostを基準にデータを取得する所をPostデータの管理を便利にする為
にCookieを利用している」と切り分けが出来てるなら、ASP.NETの基本概念を見ればどの様に変化
したかがわかると思うんだよね。
233:216
07/10/24 00:36:46
>>229
・フレームについて
回答ありがとうございます。
>検索処理をした後に検索のテキストボックスが常に見えている必要があるのか?
通信販売等のサイトで使い勝手を確認したところおっしゃるとおり「ない」です。
常に見えていないことが特に気になりませんでした。
急遽フレームを使う仕様を変更しました。
ご指摘ありがとうございました。
・ページング処理可能なビューについて
GridView+ObjectDataSourceがページング処理を記述しなくてもよいという表現は誤りでした。
おっしゃるとおりデータ取得部分は自前です。
GridView+ObjectDataSourceがページング処理の見た目の処理を備えていたので
他にもこういう機能がないのかと思ったのですが甘かったみたいです。
手軽に、というのも理由の一つですが堅実なものを作成したいので既に備えている機能をわざわざ
実装するのは避けたかったため質問させていただきました。
素直に自作します。
今回は「2.DataListを拡張~」を行いたいと思います。
Webに関しては特にわからない部分が多いため質問のレベルも低いかもしれませんでしたが、
重ね重ねありがとうございます。
234:216
07/10/24 02:25:50
当初>>216にてお尋ねしましたが
フレームは使用しなくなったことで別フレームへ動的に作成されたWHERE区を
渡す必要はなくなりましたが、
以前と同じくWHERE区をObjectDataSourceのSelectedMethodで指定された
メソッドに渡す必要があります。
以前は別フレームに文字列渡すから仕方なくSession変数に複数の条件から作成した
WHERE区を入れておいて、ObjectDataSourceのSelectedMethodで指定された
メソッド内でFill()する前にSession変数から取り出せばよいと考えていたのですが、
同じページ内のコントロールからWHERE区を作成するだけなのにSession変数を
使用するのに違和感を感じてきました。
もっと簡潔な方法ありませんか?
・フレームは使用していない単一ページ
・検索ボタンは検索したい方法が2つあるため、ボタンが二つある
(TextBox1つと検索ボタンで構成されたALLサーチ機能と細かい条件を指定するための多数の入力コントロールと詳細検索ボタン)
・SelectedMethod内でWHERE区を動的に作成しようとするなら、どちらのボタンが押されての検索かわからないため、
SelectedParameterに全ての入力コントロールをずらずらと並べることはできない
SelectedMethod内でどちらのボタンが押されての処理か判断できないと思われるため
・ボタンのイベントでそれぞれ動的にWHERE区を作成し、Session変数に格納し、
SelectedMethod内で受け取るという処理はトリッキーな方法に感じる
本件はSession変数を用いてデータの受け渡しをすることが一般的な処理方法でしょうか?
勉強で作成していますので動けばいい、というものを作ることはできないため
確認させてください。
「ObjectDataSource SelectedMethod 動的 WHERE」辺りの検索ワードでは
今回のケースにあたるような情報を見つけ出すことができませんでした。。
235:nobodyさん
07/10/24 02:28:26
>>225
同一セッションのリクエストは直列化されるってことだよ。
236:nobodyさん
07/10/24 03:00:01
フレーム分割することによりユーザービリティが低下することって考えられないけどねぇ・・・。
検索エリアを固定を常表示することで解決できるけど、それならFrameでいいじゃんと思んだけど・・・。
あらゆる場面を検証したW3Cに反論する気はないけど、規約に反するからって単一画面で描画の
遅いメニュー表示されたら余計にイライラするけどwww
237:nobodyさん
07/10/24 12:38:49
>>234
1.SelectMethodに全ての条件+処理フラグの引数を作る。
2.SelectedParameterに項目+ボタン区別用のhiddenをControlParameterとする。
3.ボタンを押されたらASP側のクリックイベントでhiddenにフラグをセットする。
4.ObjectDataSourceの中身で処理フラグによって処理を分ける。
「2.」「3.」はSelectParametersをasp:Parameterにしておいて動的に変更すれば
hidden項目自体要らない。
238:nobodyさん
07/10/24 16:35:10
質問者に対する回答でもなくて、
ユーザービリティを自分が経験した事だけでしか想像できなくて、
わけ分からん描画の遅い早いを持ち出す、
的外れてる奴が出てきたなと。
239:nobodyさん
07/10/24 23:22:33
お前ら全員死ねよ
240:nobodyさん
07/10/24 23:27:23
過激なやつだ…
241:nobodyさん
07/10/25 21:16:47
お前ら全員愛してる
242:nobodyさん
07/10/25 21:39:46
キスして
243:nobodyさん
07/10/26 00:57:34
屁こいてやったぜ
244:nobodyさん
07/10/26 15:36:23
MSDN2みたいに、メニューバーエリアを選択したら、そのメニュー項目が
Popupメニューのようにフェードイン・フェードアウトして一覧表示される
にはどうすればよいですか?
245:nobodyさん
07/10/26 17:05:56
>>244
1.MSDNのjavascriptを解析して組み込む。
2.Popup Menuのjavascriptライブラリを利用する。
ASP.NETの場合は、HTML上に表示されるコントロールID(ClientID)をライブラリに割り付ける方法は考える必要があり。
3.ASP.NET AJAX Control ToolkitのPopupControlExtenderを利用する。
ASP.NETのほかのサーバコントロールと同じように作成できるが、
Javascriptが隠蔽されるとか、コントロールの使い方を覚えないといかないはとかで理論が分かりにくい。
PopupControlExtenderの場合は<Animations>にこんな感じで指定すれば動く。
<Animations>
<OnShow>
<Sequence>
<StyleAction Attribute="overflow" Value="hidden"/>
<StyleAction Attribute="height" Value="0"/>
<StyleAction Attribute="width" Value="0"/>
<HideAction Visible="true" />
<Parallel Duration=".2" Fps="15">
<Resize Height="50" Width="125" Unit="px" />
</Parallel>
</Sequence>
</OnShow>
<OnHide>
<Sequence>
<StyleAction Attribute="overflow" Value="hidden"/>
<Parallel Duration=".2" Fps="20">
<Resize Height="0" Width="0" Unit="px" />
</Parallel>
<StyleAction Attribute="display" Value="none"/>
</Sequence>
</OnHide>
</Animations>
246:216
07/10/27 14:04:47
>>237
この方法で実装できそうです。
前から気になっていたのですっきりしました。
「asp:Parameter」という部分が理解できませんが別途調べますね。
ありがとうございます。
247:nobodyさん
07/10/27 17:04:02
>>246
SelectedParameter
<asp:Parameter Name="flg" Type="String" />
ボタン1処理
ObjectDataSource.SelectParameters.Item("flg").DefaultValue = "処理1"
ボタン2処理
ObjectDataSource.SelectParameters.Item("flg").DefaultValue = "処理2"
とすれば、hiddenを経由しなくても動的に値を変化させられる。
hiddenの方がコントロールを経由するので直感的かもしれんが、
無駄なhiddenを作る必要が無かったりするので。
248:216
07/10/28 16:18:54
>>247
せっかくヒントをいただいたので自分で調べようと思っていたのですが
ご丁寧にありがとうございます。
<asp:Parameter>
というのはGUIで作成するところで言う
パラメータソースが「None」のものですね。
Noneてどういう時に使うのかと思っていました。
こちらを組み込んだところ無事動作が確認できました。
ありがとうございました。
249:nobodyさん
07/10/29 00:16:00
ASP.NETの勉強サイト、またはTips集のサイトを教えてください!!!
250:nobodyさん
07/10/29 00:54:42
>>249
Tips集というかサンプル集
URLリンク(www.friendlysw.com)
ここのASP.NETサンプル
とか。
勉強サイトについては聞き方として漠然としてよろしくないと思います。
URLリンク(www.google.co.jp)
251:nobodyさん
07/10/29 01:47:16
>>249
ほとんど分からないのなら
一通りの機能には触るので>>2のMicrosoft ASP.NET
クイック スタート チュートリアルを最初の項目から順
にやっていくといいよ。
ただ、>>2のリンクはasp.net 1.1版なので2.0の場合は
web上では公開されて無いので「ASP.NET 2.0 クイック
スタートチュートリアル」をインストールしてみるといい。
最低限このクイック スタート チュートリアルの内容が
全て分かって無いとTips集なんか見ても理解できないかも。
252:nobodyさん
07/10/30 12:03:08
>>250-251
ありがとう。
253:nobodyさん
07/10/31 06:14:37 Ln67m40J
テキストボックスに入力されている文字列が数値かどうか判断するために
ReularExpressionValidatorを利用しています。
VaridationExpressionプロパティに「^[0-9]+$」を設定したのですが
半角スペースをのみを入力した場合IsValidateがTrueを返してしまいます。
半角スペースが入力された場合の対応としてはどういう対処が必要でしょうか?
254:nobodyさん
07/10/31 08:47:21 KCIK9HQ4
SQLServer2005への接続文字列で
DateSource:サーバー名\SQLEXPRESS
とSQLEXPRESSを付けないと接続できないけどこれは変更できるのでしょうか?
それともEXPRESS Editionを使用しているからでしょうか?
255:nobodyさん
07/10/31 10:48:10
>>254
DBMSのインストール時に名前付インスタンスにしてしまったら無理
既定のインスタンスでインストールすればインスタンス名無しでいける
Books On Lineをインストール前に入手して読めばわかることなんだけどね
256:nobodyさん
07/10/31 12:52:23
>>253
function RegularExpressionValidatorEvaluateIsValid(val) {
var value = ValidatorGetValue(val.controltovalidate);
if (ValidatorTrim(value).length == 0)
return true;
var rx = new RegExp(val.validationexpression);
var matches = rx.exec(value);
return (matches != null && value == matches[0]);
}
function ValidatorTrim(s) {
var m = s.match(/^\s*(\S+(\s+\S+)*)\s*$/);
return (m == null) ? "" : m[1];
}
上から分かるように、Validatorはスペースのみと入力なしを区別してないので、
ASP.NET側の処理もTrimするなりで合わせとくとか、CustomValidator(ValidateEmptyText="True")で
自作するとか、Javascriptで同じfunction名で処理を上書きして書き換えちゃうとか色々。
>>254
ASP.NETと関係ないし。
URLリンク(www.microsoft.com)
こことか参考にして理解した上で好きなようにしてください。
257:nobodyさん
07/10/31 14:35:49 KCIK9HQ4
>>255
勉強になりました。
258:nobodyさん
07/11/04 02:42:02
gridviewのrowを編集モードにして、値を入力する際に、
Javascriptを使用して、winodw.openで子ウィンドウを開いて、
そこから値を選択し、親windowの編集モード中のrow内のtextbox1に、
子Windowsで取得した値を入れたいのですが
detailviewには下記のようにして値を直接入れられるのですが、
-子windowで値選択時のコード-
Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.SelectedIndexChanged
Dim str As String = GridView1.SelectedRow.Cells(1).Text
Dim strScript As New System.Text.StringBuilder
strScript.Append("<script language=javascript>")
strScript.Append("window.opener.document.form1.DetailsView1$TextBox1.value = " & str & ";")
strScript.Append("</script>")
RegisterStartupScript("window", strScript.ToString)
End Sub
gridview内のtextboxに入れようとすると
strScript.Append("window.opener.document.form1.GridView1$ctl02$TextBox1 = " & str & ";")
というように編集中のrow数を指定すれば入れられるのですが、
これはどうかと思い、別方法を考え
親側のform1内にhiddenコントロールを配置し、そこに値を渡してポストバックして、
page_loadでそのhiddenコントロールの値を編集中のrowのtextbox1に渡すことを考えたのですが
編集中のrow内のtextbox1への値の入れ方が分かりません。
page_load内にどのように書けば編集中のrow内のコントロールに値を渡せるでしょうか?
259:nobodyさん
07/11/04 18:41:36
今手元に本がないので曖昧なのですが、
「Sessionには、~と、シリアル化できるオブジェクト(?)を渡す事ができる」
と書いてあったと思います。
シリアル化とはどういう意味なのでしょうか??
あとエラー処理で
「エラーは多数の行のコードをtry,catchで囲むのではなく、エラーの起きる可能性のある
行を1行ごとにtry,catchで囲むのが良い」
と書いてあったように思います。
もし、1行ごとに囲むならば、Exceptionの詳しい内容を調べる必要があると思いますが、
Exception一覧、というが載っている資料もしくはURLがありましたら教えてください。
よろしくお願いします。
260:nobodyさん
07/11/04 20:56:58
>>258
TemplateFieldを使って無いのならば、例外処理とか除いているが
CType(gridView.Rows(gridView.EditIndex).Cells.Item(1).Controls(0), TextBox).Text = "aaa"
>>strScript.Append("window.opener.document.form1.GridView1$ctl02$TextBox1 = " & str & ";")
>>というように編集中のrow数を指定すれば入れられるのですが、
>>これはどうかと思い、別方法を考え
row数を指定するんではなくて、
gridView.Rows(gridView.EditIndex).Cells.Item(1).Controls(0).ClientID
で現在編集中の行のHTML上のテキストボックスの名前が取得できるので
この値を利用してJavascriptを作り出せばhiddenコントロールもいらないと思う。
>>259
>>シリアル化とはどういう意味なのでしょうか??
URLリンク(e-words.jp)
.NETでなら、簡単に言えばクラスがISerializableインターフェイスを実装しているか。
例)DataTable
URLリンク(msdn2.microsoft.com)(VS.80).aspx
URLリンク(msdn2.microsoft.com)(VS.80).aspx
ちなみに、セッションがInProcモード なら、シリアライズ不可能なオブジェクトも
セッション変数に格納できます。
>>Exception一覧、というが載っている資料もしくはURLがありましたら教えてください。
例外が発生する可能性のあるクラスのメソッドをMSDNで調べてください。
例)System.IO.File.Delete メソッド
URLリンク(msdn2.microsoft.com)(VS.80).aspx
261:nobodyさん
07/11/04 21:21:19
>.NETでなら、簡単に言えばクラスがISerializableインターフェイスを実装しているか。
違うだろ。
262:nobodyさん
07/11/04 22:13:07
>>261
今まで大した質問にも答えてもいないのにこう言った
揚げ足とりにだけ必死にならずに説明すりゃいいのに。
ISerializableが必須で無い理由など詳しく説明してあげてくださいな。
263:nobodyさん
07/11/04 22:20:10
>>260
ありがとうございます
ISerializableインターフェイスですか!
セッションInProcモード初耳でした
エラー処理は一つ毎にExceptionを書くと面倒なことになりそうですね
みなさん(というか実際の業務では)どう書いているんだろう・・・
264:nobodyさん
07/11/04 23:02:03
ISerializableはシリアライズ処理のカスタマイズ用インターフェイス。
シリアライズ可能であることを示すのはSerializable属性。
ISerializableを実装しててもSerializable属性がついてなきゃシリアライズ不可。
ISerializableを実装して無くてもSerializable属性がついてればシリアライズ可。
独自のシリアライズ処理を行いたい場合のみISerializableを実装する。
これで満足か?
265:nobodyさん
07/11/04 23:04:46
>今まで大した質問にも答えてもいないのにこう言った
>揚げ足とりにだけ必死にならずに説明すりゃいいのに。
必死て、ていうか揚げ足じゃなくて間違ってんだろうに。
まあ俺は困らんけど>>259は困るんじゃないのか?
266:nobodyさん
07/11/04 23:10:40
>ISerializableを実装して無くてもSerializable属性がついてればシリアライズ可。
あと、これはメンバが全部シリアライズ可能な場合など制限はある。
あと基底でISerializableを実装してる場合は派生でオーバーライドしなきゃならない場合もある。
あとInProcだと確かにシリアライズできなくてもいいんだが、
なんというか後々のことを考えるとシリアライズできるもののみにしといた方がいい。
267:nobodyさん
07/11/04 23:12:34
>>265
いやだから揚げ足だろうが実際間違ってようが
間違ってるって言いたいならそれを書けよって言われてるんだろ?
「違うだろ」ってだけ書いてもなんの解決にもならないから。
261で違うだろっていって、そのままそこに何が間違ってるか回とけば良かったんだよ。
言われてから後発でこれでどうだって言うぐらいなら最初から言えよって話なんじゃないの。
なんにせよ無駄な時間だろ?
>>261の時点で理由も書いてりゃ>>262自体存在しねえんだから。
268:nobodyさん
07/11/04 23:32:13
>>264
満足です。
まぁ、本当は「ISerializableを実装して無くてもSerializable属性が
ついてればシリアライズ可。」の揚げ足取ろうとしてたら、>>266で
多分、>>261?が補足していたので消したけどね。
>>265
個人的にはSerializable属性を付ければシリアライズされますと言うのは
>>266のように単純では無い事もあるので、>>259がここら辺をあまり理解
していない物として、ISerializableで検索でもしてオブジェクトをシリアライズ
する過程を調べてもらおうと思ったんだがね。
だから、ISerializableインターフェイスを実装しているものが、セッションに
入れられますと言ったつもりは無いんだがまぁ、間違ってるといわれれば
仕方ない文章なのはすまない。
このスレ盛り上げようと、ほとんどの質問に答えてたのだが、もう少し勉強
しないと駄目だなw
269:nobodyさん
07/11/05 00:02:19
>>265
意味不明。俺にとっては>>261の方がただの横槍なのか、
指摘してるのか分からんだけ>>259が困ると思うけどね。
そもそも掲示板なんて間違いを教えられる可能性もある事が
前提なんだから自分で調べるのは基本だろ。
270:nobodyさん
07/11/05 00:36:53
そうか?
違うだろ、があるのと
何も無いんじゃ、
これから調べるにしても少なくともないより間違いにくいと俺は思うけど。
271:nobodyさん
07/11/05 00:38:04
>>266のように単純では無い事もあるので、>>259がここら辺をあまり理解
していない物として、ISerializableで検索でもしてオブジェクトをシリアライズ
する過程を調べてもらおうと思ったんだがね。
こういうのは、お前が思ってるだけで特に分からないヤツには明確に書かてあげないと意図伝わらないだろ。
272:nobodyさん
07/11/05 00:40:15
>>265は>>262の後半のつまり説明しろに対して書いたんじゃなくて
余計なこというな、に見えた部分に対して書いたんだすまん。
273:nobodyさん
07/11/05 00:46:15
今は大丈夫っぽいけど昔はシリアライズからみは間違った解説がいっぱいあったからな~
XmlシリアライズするためにSerializable属性が必要とかISerializable実装するとか
Serializable属性ついてるのにXMLシリアライズできないバグがあるとか
上で出てきた話とかいろいろいろいろw
274:253
07/11/05 03:13:44
>>256
ASP.NET側とJavaScript側で動作が違うので
CustomValidatorを使用して自作することにします。
ありがとうございました。
275:nobodyさん
07/11/05 08:54:54
>>270
ないない
そもそも、「これから調べるにしても少なくともないより間違いにくい」とか
思ってる奴なら詳細を説明しようとするもんだ。
276:nobodyさん
07/11/06 06:57:01
これで満足か? きめぇwwwwwwwwwwwww
277:nobodyさん
07/11/06 18:19:56
既出かもしれませんが、とりあえずこのスレのはじめからは読みました。
PageA⇒PageB⇒PageA' と遷移したとき、PageA'に戻ったときに、
PageAの状態をそっくりそのまま復元する方法は、はやりViewStateを
Sessionに保存するのが一番いい方法でしょうか?
いろいろ探して URLリンク(d.hatena.ne.jp) をみつけたのですが、
どうもASP.NET Ajaxを使用しているせいか、
「このページ状態は無効です。壊れている可能性があります」
とエラーが表示されてしまいます。
ヒントとなるようなソースもしくはサイトをご存知でしたらご教授いただけると助かります。
また、個別のコントロールをSessionに保存する方法でも結構です。
どうぞよろしくお願いします。
278:nobodyさん
07/11/06 18:25:38 zErdHZrx
↑環境を記述するのを忘れていました。
開発環境
WindowsXP Pro
VS2005Pro
C#
ASP.NET Ajax
です。
初代VS.NETからサポートに入っていますが、今だによく分かっていませんorz
279:nobodyさん
07/11/09 08:54:04 AOsg/er1
VS2005のASP.NET(VB.NET)でWebページを作っています。
デフォルトの設定だと半角の「\」(円マーク)が出ないので、globalizationをShift_jisにしたのですが、
今度は全角の「~」(波線)が?になってしまいます。
ASPで作っていたときは特に表立った問題は起きなかったのですが、ASP.NET下で両立させる
設定はできないのでしょうか?
OSはWinXPと2K、ブラウザはIE6です。
パッチ類は一通り当たっている状態です。
280:nobodyさん
07/11/09 23:45:36
¥
281:nobodyさん
07/11/10 21:52:12 IaYZNmi9
~(波ダッシュ)は化けないでしょ。?全角チルダ(XPや2Kでは下がって上がる波の形)は駄目だけど。
UTF-8でも5Cをバックスラッシュではなく円マークで表示する日本語フォントにすればいいかもね。
文字コード関係の知識がないとこれからも困るだろうに。
282:nobodyさん
07/11/11 10:03:08
>>281
レスどうもです。
それが、JISだと「~(IMEをOnにして~)」を入れると?で表示されるんです。
また、UTFにすると表示はされますが、ここで見えるようなきれいな形の~ではなく、汚い
フォントの全角チルダ?になっているようです。
どこかで表示フォントを指定する必要があるのでしょうか?
同一Webサーバー内で動いているASPの方はそんなことお構いなしで表示できているのに、
.NETだとダメなのでサーバーに依存しているわけではないというのは判るのですが・・・。
ASP.NETは始めたばかりで、いろんなことが便利に使える反面、複雑で判らないことが多く
かなり苦労してます。orz
283:nobodyさん
07/11/11 12:06:32
ブラウザの言語設定がおかしいとかじゃねーの?
284:279
07/11/12 13:14:42
「~」が「?」になるのはOracleの問題でした。
あまりかしこいやりかたではありませんが、globalizationをShift_jisにして\が出るようにし、
DBへの接続をODP.NETからOLEDBに変更して対応させました。
コメントしてくれた方々、ありがとうございました。
285:nobodyさん
07/11/13 23:29:46 JHc7eDB0
Response.Cookiesでクッキーの値を取得できますが
サーバサイドでクッキーの値を扱うということは
クッキーの内容を全てサーバに送信してるってこと?
286:nobodyさん
07/11/13 23:41:38
そうです。
287:nobodyさん
07/11/14 01:18:40
微妙に不思議な表現だなw
288:nobodyさん
07/11/14 17:35:47
GridViewにSQLserverからSELECTしてきたデータをバインドしたいです。
テキストボックスの値をWHERE句に読み込んで…という形なのですが、
SQLcommand.Parameters.AddWithValue("@hage",hage)
というようにすると、このあとデータセットで返すことが出来ず、バインドできません。
普通にテーブルアダプタ作ってFillする方法だと、今度はAddWithValueが使えずセキュアになりません。
一応、データセットデザイナだか何だかのGUIウィザードで
パラメータ有のバインドが出来ましたが、
コード上でどうにかできないでしょうか。
SQLCeCommandにはResultSetという
バインド可能なオブジェクトを返せるのがあるようなのですが…
289:nobodyさん
07/11/14 17:54:37 jLRgJntu
VS2005のASP.NET(VB.NET)を使っています。
databindでラジオボタンが複数選択できてしまうので
単一選択ができるカスタムコントロールを作ろうとしています。
URLリンク(www.microsoft.com)
この通りにやって、サンプルのコードをコピペすると、
Imports System.Web.UIが見つからない、というエラーが起こります。
新規のプロジェクト作成時のパスは今のアプリケーションルートの下で
いいのでしょうか?
290:nobodyさん
07/11/14 18:40:57 jLRgJntu
>>289で書きこんだものです。
単純に参照設定ができてなかったようです。
追加で参照設定をしたところ読み込めました。
291:nobodyさん
07/11/14 21:36:10
.NETでお絵かき掲示板を作ろうと思っています。
お絵かき部分のJavascriptは検索していくつか候補があるんですが、
その結果をどうすれば反映できるのかが分かりません。
Javascriptの内部で画像として保存、それからリンクを張るとかだとUI的に面倒なので
Canvasに絵を描く、コメントを打ち込む→投稿ボタンを押す
だけで一気に画像の保存からコメントの投稿まで終わらせたいと思っています。
が、コメントはテキストボックスにいれておけば、ボタン押下でPOSTされてきますが
JavaScriptのCanvasに描かれた絵の部分は一体どこから取得すればいいんでしょう?
そもそも絵のデータは一体どこに保持されているんでしょう。
292:nobodyさん
07/11/14 21:38:05
方法として2種類考えています。
SVGのデータとして結果をDBに格納してそれを表示時に再反映する方法。
投稿の時点で画像としてサーバに保存し、そこにリンクを張る方法。
別にどちらでも構わないんですが、どちらの方が簡単に実装できそうでしょう?
293:nobodyさん
07/11/29 09:52:52
GridViewの条件検索でDropDownListを使っています。
静的項目として「すべて」という項目を作り、
AppendDataBoundItems=trueにしています。
SqlDataSourceのSQL文のWHEREの対象句が文字列であれば
例:「…WHERE (Book like @Book)」として項目「すべて」のValueを「%」に
しておけば、選択されたらすべてが表示できるのですが
以下のように、対象句がIntの場合
SELECT ID, Book FROM tbl_Book WHRERE (ID = @ID)
DropDownListで「すべて」が選択された場合にすべてを表示
させる動きにするにはどのようにしたらいいのでしょうか?
使用しているデータベースはSQLSERVER2005EXPRESSです
294:nobodyさん
07/11/29 17:46:04 rMbVmK8t
SelectionChanged かなにかのイベントで
場合分けしたらいいんじゃないのかな。
295:nobodyさん
07/12/04 14:38:47 l2Tev5nw
ASP.NETで画面をHTMLで作成する時、Labelがずれちゃったりテーブルの高さが
おかしくなったりするんですけど、これってどう対処すればいいですかね?
Widthを調整したり、全角と半角で微調整ってのは一応わかってるんだけど他に何か
うまいやり方ってあるかな?
296:nobodyさん
07/12/04 18:19:09 l2Tev5nw
295です。
画面設計についてはVisualWebDeveroperのヘルプに書いてありました。
ネットで検索するよりヘルプの方が情報量多いね。盲点だった。
297:122x218x24x97.ap122.ftth.ucom.ne.jpfieojfefe
07/12/05 11:39:13 bGekTFEd
e
298:ヘルプ
07/12/07 00:22:59
誰かわかる方がいらしたら教えてください。
ASPを使ってネットワークフォルダのファイルを参照したいのですが、うまくいきません。
認証はwindowモードでユーザ偽装をおこない、iiSの統合windows認証のユーザに偽装します。
そこでエクスプローラで
\\マシン名\フォルダ名だと参照できるのに同じユーザでASPにてファイルを参照しようとすると権限にてはじかれます。
どなたかわかりましたらお願いします。
299:nobodyさん
07/12/08 11:13:53
ふらっとで質問したのですが、こちらで聞いた方が良いと誘導されてきました。
あるプロトコルでチャットに接続し、ユーザはIEの画面を通して発言したり
他者の発言を取得して画面を更新したりするプログラムを作りたいと思っています。
以下のような構造になるのかなと考えています。
【ユーザ】←HTTP→【画面側プログラム①】←なんらかの方法→【プログラム②】←→インターネット
①:
ASPで、他者の発言の取得はn秒ごとにポーリングを行う。
(サーバプッシュ型にできればなお良い)
②:
EXEにしてサービス化?ともかく常時起動しており、チャットには繋がりっぱなしにする。
①の状態には依存しない。
ASPにして①と同化させると、ユーザが画面を開くたびにインスタンスが新しくなってしまうのと
ユーザが画面を開かなければインスタンスを作れないので分ける必要がある(と思っている)
そこでよく分からないんですが、まず、IISの起動と終了のイベントを拾って
プログラムを動かすことができるのでしょうか。
可能なら、①と②を一緒くたにして、IIS起動でチャット接続して、その状態をstaticメンバにして
全インスタンスで共有し、終了で切断するということでASP一本にできると思ってます。
これは可能でしょうか。
もう一つ、分ける場合には①と②で情報のやりとりをする必要があります。
②でインタフェースを提供し、①はそれを呼び出すだけという形にしたいです。
①から見たときに利用を簡単にしたいので、できればWebサービスとしてインタフェースを
提供できないかなと思うのですが、②がASPじゃなく普通のEXEの時に、②でWebサービスを
実装するにはどのようにすればいいのでしょうか。
(②がASPなら、IISが良きに計らってくれますが…)
また、Webサービスが無理ならどういう方法で通信するのがベターでしょうか。プロセス間通信とか?
妄想段階なので曖昧な点が多いのですが、アドバイスをいただければ幸いです。
よろしくお願いします。
300:nobodyさん
07/12/08 22:03:20
①のApplication_Startで②の処理開始すりゃいいんじゃねーの普通は。
301:nobodyさん
07/12/08 22:20:28
ありがとうございます。
ちょっと確認させてください。
Application_Startは、IIS起動後最初のユーザがページにアクセスして、
一つ目のインスタンスを作る時に発生。
Application_Endはすべてのセッションが切断された時に発生。
という認識であってるでしょうか。
できれば、IISからWebサイトを起動した時と停止した時にイベントを拾いたいのですが、
そういうイベントはありませんでしょうか。
302:nobodyさん
07/12/08 23:10:32 qOs8ePBr
今日からASP.net始めました。よろしくお願いしますw
すみません。厳密にはVisual Studio 2005の使い方になってしまうかもしれませんが……。
ASP.netで使用中のデータベースの内容を見ようとしたのですが、サーバーエクスプローラの「データ接続」から.mdfファイルを開く(データベースに接続する)ことが出来ません。
「ユーザーの既定データベースを開けません。 ログインに失敗しました。
ユーザー 'hostname\username' はログインできませんでした。」
というダイアログが表示されます。
接続文字列内でAttachDbFilenameでファイル名を指定しUser Instance=Trueとして接続すると、こういう使い方は出来ないのでしょうか?
303:nobodyさん
07/12/08 23:12:09
一つ目のインスタンスってなんのこと?
Application_Endはアプリケーションがシャットダウンされるとき。
通常はユーザのアクセスが一定時間無かったとき。
サイト起動時ってのはASP.NET側ではない(まだ動いてもいないから)
サイト起動時にやらないといけない理由があまり見当たらないんだが…
304:302
07/12/08 23:12:38
追伸です。
まだSelect文しか流してはいませんが、ASP.net側ではとりあえず接続は出来ているようです
>問題のデータベース
305:nobodyさん
07/12/08 23:14:08
>>302ASP.NETで使用中とは、IISで運用中ってことかい?
IISで動作中は、例えばIIS6だとNETWORK SERVICEユーザが使用中だから、
User Instance=Trueでは使えないはず。
306:nobodyさん
07/12/08 23:23:50
>>303
ユーザが画面を開いていないときでも、チャットには繋げっぱなしにしたいのです…。
とりあえずWebサーバ起動時に繋げにいって、チャットの書き込みをサーバのログに吐く。
ユーザは必要な時だけWebサーバにアクセスするという形で。
自分だけが使うものなので、最悪、起動時は必ず画面を開いてApplication_Startを
呼んでやるという形でもいいのですが、終了時はApplication_Endでチャット切断処理を
やってしまうと、ユーザからのアクセスが無いときに勝手に接続が切れてしまうので…。
かといってどこかに明示的な切断を入れないと、アプリ終了後もタイムアウトするまで
チャットに居座りっぱなしになる行儀の悪いプログラムになるなあと。
ユーザの状態に依存しない開始と終了イベントを取れれば、
ユーザは必要な時だけWebサーバにアクセスし、ユーザはサーバ側のチャットへの
接続状態を気にしなくて済むようになり、サーバ側もユーザの接続状態を
考えなくて済むようになると思いまして。
画面側にはWebサービスとして、チャットで発言するメソッドと、画面更新のために
最新のチャットログを取得するメソッドくらいを提供してやればいいかなと。
307:302
07/12/08 23:31:32
>>305
早速のお返事どもっす。
こーゆー使い方したかったらちゃんとSQL Server動かせってコトなんですね
……まぁ、「AttachDbFilenameでファイル名を指定しUser Instance=Trueとして接続」するのが「ちゃんとしていない」ってコトはないんでしょうが……。
要はPHPのSQLiteとかJavaのHSQLDB(のスタンドアロンモード)と考えればOKかな?
手軽には使えるけど、ちょっとイヂりたいとかの場合は不便ですなぁ。
308:nobodyさん
07/12/09 00:53:07
んーUser Instance=Falseじゃだめなのけ?
309:nobodyさん
07/12/09 00:57:02
>>306
ようわからん、サイト起動時に接続するんじゃ
もはや切断なんて関係ないレベルですでに十分行儀悪いと思うが。
どうしてもそんな風にしたいんならサービス作るしかないんじゃない?
310:nobodyさん
07/12/09 05:00:17
むぅ
ちなみにEXEで作ってサービス化した場合、その中でWebサービスとして
メソッドを提供することは可能でしょうか?
それとも、WebサービスにしたいのならASPで作らないとダメでしょうか。
311:302
07/12/09 09:59:21
>>308
ダメみたいですねー。今度は本体(ASP.net側)でエラーが出ます
>User Instance=False
312:nobodyさん
07/12/09 18:17:59
Application_Endが呼ばれた後って、Applicationオブジェクトに格納していた
オブジェクトはどうなります?
要するに、ユーザがしばらくアクセスしなかったら、破棄されたりします?
313:nobodyさん
07/12/09 20:29:55
Application_Endが呼ばれるってことはそういうことだ。
まあtimeoutを伸ばすとか終了させないようにする手もあるが、
普通は必要ない。
314:nobodyさん
07/12/09 20:37:11
んー、ようするに、ASPでユーザの状態によらないオブジェクトの維持は無理ってことですかね?
例えば、今日一日のアクセス数を返すようなWebサービスは、変数をファイルに
書き出して保持しないと維持できない訳ですよね?
一番生存期間が長い(と思う)Applicationも、ユーザのタイムアウトによる
Application_Endで破棄されるみたいですし。
315:nobodyさん
07/12/09 22:29:07
だからリサイクルの設定をみんなオフにする手はあるが、
どっちにしても保証はされてないから結局Endで保存、
Startで読み込みとかは必要になる。
316:nobodyさん
07/12/09 22:30:01
あ、いや、Endで保存、Startで読み込みは微妙だな、うまくいかない可能性がある。
317:302
07/12/09 23:04:34
たびたび申し訳ないっす。
TableAdapterを試そうとして少々苦戦しています。
VisualStudioでのビルドは通るのに、実行時に型または「名前空間名 'hogeTableAdapters' が見つかりませんでした」って出るのはどうしてでしょう?
……TableAdapter自体もよーわからんっす。Fillした後、どうやってデータを取り出せばいいんだろう?
「ASP.net 2.0 実戦プログラミング入門」という本を参考にしていますが、あまりいい本ではありませんね。
ちょっと後悔。
318:302
07/12/10 10:37:10 aKqH/kSM
>>317
あ、申し訳ありません。age忘れてましたね。失礼。
319:302
07/12/10 18:53:27
自己解決。↓が足りなかったらしい
URLリンク(www.atmarkit.co.jp)
VisualStudioで面倒見てくれるときとくれない時があるのね。
引き続きTableAdapterに挑戦中……。
320:nobodyさん
07/12/10 22:35:57
おい、PHPスレを荒らしに来てるやつ自重しろクズ
321:302
07/12/11 17:02:22 fZiANqi9
スレ汚しですみません。
TableAdapterの方はなんとなく判ってきましたが、わき道に逸れてGridView+FormViewなんてモノに手を出してます
なんとかマスターメンテらしきモノを作るところまでは出来たのですが、FormView側で登録・更新・削除した結果をGirdViewに表示させることが出来ません。
ググった結果「GridViewのEnableViewStateってプロパティをFlaseにすればOK」という情報までは取得できましたが、この設定にはなにか副作用があるのでしょうか?
単に「初めての表示/明示的な読み込みの結果を保持しておきたい」という目的以外にTrueにする意味はあるのですか?
322:nobodyさん
07/12/13 00:41:26 6Y2No+8T
>>306
コメットを使うことが出来ればやりたいことは実現できそう?
323:nobodyさん
07/12/13 22:05:12
どっからコメットが…
324:nobodyさん
07/12/15 12:37:07
DBからSELECTしてきたDataSet等に、
さらにSQLを投げてDataSetを作成することは可能ですか?
325:nobodyさん
07/12/15 13:24:29
>>324=302
326:nobodyさん
07/12/16 01:51:04
会社の環境はVS2005なのですが、ちゃんと
aspx
aspx.cs
designer.cs
とワンセットで表示されるのですが、家の環境はWebDevelopperで
designer.csがソリューションエクスプローラに表示されません。
aspxなどの場所にdesigner.csファイルもありません。
これはどうやって表示させるのでしょうか?
WebDevelopperはソリューションファイルやプロジェクトファイルも無いんですよ(^^;
なので、いつもファイルをダブルクリックして立ち上げるのではなく
WebDevelopperを開いて、スターと画面から最近実行したソリューションの一覧から選択してる・・・
327:nobodyさん
07/12/16 19:34:30 IvdqqwNS
教えてください。
Repeaterにユーザコントロールファイルをセットして実行し、
ascx.csでRepeater.DataSourceに入っているデータレコードを取得したいのですが
そんな事は可能でしょうか?
this.rep.DataSource = dataTable;
this.rep.ItemTemplate = Page.LoadTemplate("Test.ascx");
this.rep.DataBind();
Test.ascx.csでdataTableのレコードを取得したい。
ascxでは
<%# DataBinder.Eval(((RepeaterItem)Container).DataItem, "name") %>
で取得可能なのですが、これをascx.csでやりたい。
何でかと言うと、この値によって処理を変更したいからです。
お願いしますm(_ _)m
328:nobodyさん
07/12/17 03:20:00
>>324
ds.table.select("id=1")でDataRow[]が取り出せたような…
これでデータセットに対するselect文は実現出来ない?
329:nobodyさん
07/12/17 18:30:50
>>328
ありがとうございます。
発端というのが、SQL文が長くなってしまったので、
DataSetを一時テーブル代わりに、小分けにして実行できないかという
安直な思いつきだったのです。
DataSetを2つ作ってから要素を取り出して、
疑似LEFT OUTER JOINとかやってみたのですが余計に大変だなとw
そんな訳で…申し訳ありません。きちんと背景から書くべきでした。
330:nobodyさん
07/12/19 01:40:10 kIBGOFX3
現在のページのファイル名を取得できる
プロパティとかありませんか?
用途としては自分自身のページにパラメータをつけて
再度呼び出し、Request.QueryString()でその値を
取り出すためです。
331:nobodyさん
07/12/28 00:08:34 EfHkVobu
VWD2005(VB.NET)を使ってます。
javascriptでサブウインドウを作って、閉じる処理をしたいのですが
サブウインドウが閉じない場合があるので回避法を教えて下さい。
awin=window.open('a.aspx', 'a');
awin.close();
この場合うまく閉じる。
awin=window.open('a.aspx', 'a');
ポストバック発生
awin.close();
サブウインドウ閉じない。
332:nobodyさん
07/12/28 20:57:22
>>330
俺は定数で宣言してる。
>>331
a.aspx内にウインドウを閉じるスクリプトを書き、
なんらかのイベントを受け取らせて実行させればいいんじゃね。
つか、ウインドウを開いて何のイベントも発生させず、
しかし、ポストバックを起こして閉じたいなんてどういう用途なんだ。
333:331
07/12/28 22:24:13
>332
回答ありがとうございました。
実際のコードは間に種々の処理がありますが、最小限の再現コードを
書いただけです。
とりあえず、解決しました。
a.aspxからopenerを一定間隔で監視し見つからなければ自身を
閉じることで実現しました。
openerが遷移した際は、opnerにhiddenを埋め込んでおきa.aspx側から
監視することで遷移を判断しました。
334:nobodyさん
07/12/28 22:29:01
Request.CurrentExecutionFilePath 辺りとか?
335:330
07/12/30 22:06:04
Request.CurrentExecutionFilePathと
System.IO.Path.GetFileNameを使って
取り出せました。
ありがとうございました。
336:nobodyさん
08/01/01 21:08:48
しつもんしつもん。
ローカル環境(Web Developer 2005+SQLServer2005)でWebアプリを製作して、
とりあえず動くようになったのでサーバーにアップしたのです。
あ、サーバーはファーストサーバーのエクスプレス2です。無料のね。
なんとかかんとか設定を終えて、いざ実行!・・・したら、エラーがでるのです。
System.NullReferenceException:オブジェクト参照がオブジェクト インスタンスに設定されていません。
ってね。
ローカル環境では問題なく動作するのに、サーバーにアップするとエラーになるってのは、
どうしてなんでしょうか???
337:nobodyさん
08/01/01 22:26:23
オブジェクト参照がオブジェクトインスタンスに設定されていないからだろ
338:nobodyさん
08/01/08 19:46:24
ActiveReportsを64ビット環境でどうにか使えるように出来ないでしょうか?
339:nobodyさん
08/01/12 16:00:40
>>338
それはサポートに聞いた方が早い質問だ
340:初心者
08/01/24 15:18:55 RPd1Q97N
ASP.NET でRDOとかでSQLサーバーに接続できるのでしょうか?
それともAODだけなのでしょうか?
341:nobodyさん
08/01/24 15:36:11 7JZT46In
Hoge.aspxで
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder" Runat="Server">
<asp:Label ID="heading" runat="server"></asp:Label>
</asp:Content>
のようなブロックがあったとして、Hoge.aspx.vbからasp:Labelを取得したいんですが、
どうやればいいのでしょうか?
単純に
Page.FindControl("heading")
では取得出来ないようで・・・
よろしくお願いします。
342:341
08/01/24 17:22:36 7JZT46In
上の件については解決しました。
無理にFindControl使わずに、headingをそのまま使えるみたいですね。
しかし、新たな問題が。
Page.Request.QueryString("param1")
として取得したクエリ文字列に日本語が入っていた場合、
AscW関数で取得した数値が一律65533になってしまいます。
どうにか日本語のまま取得出来ないでしょうか?
よろしくお願いします。
343:341
08/01/24 17:50:53
何度もすみません、解決しました。
web.configに
<globalization requestEncoding="Shift_JIS" />
を書くことで日本語で取得できました。
344:nobodyさん
08/01/24 21:04:09 swcPOcpz
>>343
目先の結果だけで変更しちゃっていいものなのか?
と、ちょっと思った。
345:341
08/01/24 21:23:24 0wPjeug7
ではどうするのがいいのでしょうか?
346:nobodyさん
08/01/25 21:27:35
VS2005使っています。マスターページを利用しているaspファイルの
コンテンツに、vbファイル内にて取得したhtml文を出力させたいのですが
どうやったらよいのでしょうか?コードは次のようになります。
■test.aspxの中身
<%@ Page Language="VB" MasterPageFile="~MasterPage.master"
AutoEventWireup="false" CodeFile="test.aspx.vb" Inherits="test" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
?ここに、test.aspx.vbの変数AAAAAに格納されたhtml文を出力するコードを書きたい。?
</asp:Content>
■test.aspx.vbの中身
Partial Class CountMonth Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal Sender As Object, ByVal e As EventArgs) Handles Me.Load
AAAAA="<table><caption>サンプル</caption><tr><td colspan=0 align=center><b>ほげ</b></td></tr></table>"
End Sub
End Class
347:nobodyさん
08/01/27 12:57:11
>>345
344とは別人ですが,
「考えてShift_JISに変えることで問題を解決させた」なら良いけど,
「Shift_JISに変えてみたら解決した(ように見えた)」なら不安や疑問が残るのは当然。
限定された利用環境でしか通じない(=限定された利用環境では通じる)
ということを理解してるなら問題無いと思う。
345は自分の想定している利用環境を見つめ直してみると良いんじゃない?
自分用アプリだとしでもDB絡みとか考えることは色々あるかも知れない。
文字の符号化の問題はなにかと躓きやすい問題の一つ。
348:nobodyさん
08/01/27 13:00:53
>>346
変数AAAAAに書かれたコードの安全性を検証できないんじゃないかとか考えたり。
349:nobodyさん
08/01/28 20:37:23
TreeView のあるノードをクリックしてポストバックした後
さきほどクリックしたノードがハイライトになっているようにしたい。
どのようにすればいいでしょうか。
参考になるサイトありましたらリンク先でもはっていただけると助かります。
よろしくお願いします。
350:nobodyさん
08/01/31 20:49:43 pr1Jn4LS
>346 普通に <% =AAAAA %> でいいだろ?
351:nobodyさん
08/02/01 12:55:47 Ik8bhfAO
始めたばかりなのですが、質問です。
とりあえずウィザードで作ったページに、_Defaultってクラスが生成されました。
Page_Load()とかに制御が来るのは分かりました。
このインスタンスっていつ削除されますか?
デストラクタを書いたら、起動時に飛んでくるんですけど...;
中でソケット通信していて、終了する時にはCloseしてやりたいのですが、
いつ終了されるか分からなくて...。
宜しくお願いします。
352:nobodyさん
08/02/01 13:05:10
VB2005にてマスターページを使っている
ページのコントロールを取得、各プロパティを変更したいです。
Me.ControlsをForで回して取ろうとしたところ
マスターページのControlsが取得されてしまいうまくいきませんでした
他に方法はありませんでしょうか?
変更対象が100個くらいあるので・・
1つ1つ変更するのはできれば避けたい所です。
ご教授よろしくお願いします
353:352
08/02/01 15:54:44
自己解決。
Master.FindControlで探してきてDirectCastで取ってこれました
354:nobodyさん
08/02/04 14:54:56
マスタページを使うよりユーザコントロールでなんとかしちゃったほうが
シンプルでメンテしやすい(Javascriptからの扱い等)と思うのは俺だけ?
355:nobodyさん
08/02/07 10:29:47 WbXuHs4A
URLリンク(support.microsoft.com)
ここの「サーバーのメモリに任意のオブジェクトをキャッシュする」ってところのプログラムなんですが、
SqlConnectionをcloseしていません。
これは大丈夫なのでしょうか?
356:nobodyさん
08/02/07 19:17:02
Close以前にOpenがないだろ?
そしてSqlDataAdapterは非接続型だ。
後はわかるよな?
357:nobodyさん
08/02/09 17:40:07
ASP.NETのセッションIDはどういった単位でユニークになりますでしょうか?
IPアドレスが違えばユニークになると思いますが
それ以外にはたとえばUserAgentが変わってもユニークに
なりますか?
358:nobodyさん
08/02/09 18:40:06
どのような環境でもユニークになるから気にしなくておk
359:nobodyさん
08/02/11 01:40:21
>>357
sessionid がクライアントから投げられてこなけりゃ新しく生成される。
だからたとえ同じUAでも別途立ち上げれば別セッションとして扱われる。
UAが投げてるRequest見ると分かりやすいかも。
FiddlerだのWebDevelopmentHelperだので見ると幸せになれるかも知れん。
360:nobodyさん
08/02/11 10:12:41 8IeW4FxX
DataAdapter は接続型だろ。
ただ、Fillメソッドの中で Open と Close してるだけ。
361:nobodyさん
08/02/11 11:40:28
は?
362:nobodyさん
08/02/14 00:08:37
データアクセスコンポーネントをデザイナツールで作成し、
TableAdapterのGetDataでデータテーブルを取得した後
ObjectDataSourceコントロールを使用せずに、コードでGridViewと連結しました。
この場合のGridViewの複数の列に対して非表示の設定を行いたいのですが
どのようにコーディングすればよいのでしょう?
363:nobodyさん
08/02/14 00:32:20
DataTableのColumnsの数を調整する
364:nobodyさん
08/02/15 00:12:20
そうなのか、DataTableで調整するんですか
GridViewの列数をカウントしても0となってるんで悩んでました
365:nobodyさん
08/02/15 21:57:56
信じてどうする
366:nobodyさん
08/02/18 18:21:09 p++OLHN+
ASP.NETで構築したサイトがあるのですが、社内のイントラWebなので
統合Windows認証で認証を行うようにしてあります。
先日、IE6からIE7に切り替えたのですが、上記のサイトに接続する際にユーザ名と
パスワードを確認するダイアログが出るようになりました。
従来どおり、ダイアログが出ないようにするにはブラウザの設定が必要なのでしょうか?
インターネットオプションの信頼済みサイトには上記のサイトが入っています。
IE6では、これを設定すればダイアログが出ないようになりました。
367:nobodyさん
08/02/18 18:30:11
自己解決しました。
今までは信頼済みサイトにサイトを入れていたのですが、イントラサイトに入れなおして
ログインのオプションを調整したら入れるようになりました。
お騒がせしました。
368:nobodyさん
08/02/19 14:46:13
すみません。質問です。
ASP.NETをはじめたばかりなので、どのコントロールを
使ったらいいかというレベルです。
掲示板みたいに、ログファイルを整理して表示するページを作っているのですが、
どのコントロールを使ったらよいのでしょうか。
DataListを見ると、1行おきに設定できるのは、色だけであり、
フォント関連のタグは指定できません。
Tableも、値を追加することは出来ても、フォント関連のタグは
指定出来ません。
ASP.NETは、デザインで、オブジェクトを配置してプログラムする
スタイルですので、プログラムのループで、オブジェクトを配置というのも
出来ませんよね・・・
369:368
08/02/19 15:04:42
追加で補足です。
例えば、以下のサイトのサンプルの掲示板では、
書き込む時にログファイルにタグも含めて書き込んでしまい、
データを表示するときに、すべてのデータをLabelに表示する
という形式を取っています。
URLリンク(aspnet.cguild.com)
ASP.NETの場合は、こういうやり方しかないということなのでしょうか。
私は、2ch.netみたいに、データだけのログファイルがあり、
それを自由にレイアウトしながら表示するというものをしたいのです。
これが、Perlだとすぐにイメージがつかめるのですが、ASP.NETとなると
プログラムの全体概要のイメージが出来ないのです。
それで、どういうコントロールを使ったら良いのかを質問してみました。
370:nobodyさん
08/02/19 21:10:25
>DataListを見ると、1行おきに設定できるのは、色だけであり、
>フォント関連のタグは指定できません。
DataBoundイベントでも引っこ抜いて、動的に生成すれば大抵のことはできる。
マウスでD&D、ちょいちょいとプロパティ設定で、はい出来上がりではない。
>ASP.NETは、デザインで、オブジェクトを配置してプログラムする
そらホームページビルダーだろw
基本的にデザインビューは、知らない人が保守で見たときに
オブジェクトの相関関係が目で見て分かりやすいってものだと俺は認識してる。
コードで書けばいい。
>データを表示するときに、すべてのデータをLabelに表示する
Labelなんてspanタグだ。"<span> %s <span>"だと思えばいい。
>ASP.NETの場合は、こういうやり方しかないということなのでしょうか。
んな訳ない。好きなように出来る(一部、死ぬほどやり辛いことはあるが)。
ちょっと初心者過ぎる気がするので、本を一冊買って来た方が良いと思う。
371:nobodyさん
08/02/20 01:53:44
>>370
レスありがとうございます。
> DataBoundイベントでも引っこ抜いて、動的に生成すれば大抵のことはできる。
> マウスでD&D、ちょいちょいとプロパティ設定で、はい出来上がりではない。
なるほど。私がイメージしてたものとは違うということのようですね。
コントロールの使い方について学んでいく必要があります。
> コードで書けばいい。
開発環境を使わずにメモ帳を使ってということですよね?
そっちのスタイルでも書いている方は結構いらっしゃるようですね。
> Labelなんてspanタグだ。"<span> %s <span>"だと思えばいい。
spanで囲むだけだったのですか。
何か特別なオブジェクトに格納するので、あまり長い文字は入れたり
しない方がいいのかなと思ったりしていました。
だったら、あの仕様でも良いですね。
> んな訳ない。好きなように出来る(一部、死ぬほどやり辛いことはあるが)。
> ちょっと初心者過ぎる気がするので、本を一冊買って来た方が良いと思う。
分かりました。書籍を購入して読んでみます。
しかし、ちょっと気になったのですが、ASP.NETなど製品版の場合、PHPやPerlに
比べてネットだと情報量が少ないですよね。。。開発をしようとすると非常に費用が
かさむ世界なのでしょうか。。
372:nobodyさん
08/02/20 03:13:04
すみません。質問です。
ASP.NETで書くと、それを表示する環境側にあわせたhtmlコードを出力する仕様だと
いうことですが、それは、コントロールを配置した場合に限るのですよね?
コントロールを配置する範囲でうまくいかない場合はstringに自分でタグをいれこんで
それをまとめて出力するとかやる事が多いと思うのですが。
このメリットは、本当に現場で活かされているのか、ちょっと疑問だと思いましたので
質問をしてみました。
URLリンク(www.atmarkit.co.jp)
373:nobodyさん
08/02/20 23:45:41
>>371
>開発環境を使わずにメモ帳を使ってということですよね?
違う違うVS2005。言いたかったことは、君が思ってるよりも
コード(aspx.vbや.vb)の手打ちで実装させることが多いということ。
TextBoxのonblurイベントからJScriptFunctionを仕込んだり、
GridViewに複数列をキーとしたソートを実装したり、
JScriptでの結果をASPにreturnして、さらにその結果をJScriptに返したりとか、
デザインビューのプロパティやコンテクストメニューとかに
項目が存在していなくても、コードを書けばなんとでもなることが多い。
>PHPやPerlに比べてネットだと情報量が少ないですよね。。。
。。。と付ける程少なくないと思うが。つかMSDNとヘルプでほぼ事足りる。
ASP.NETのクイックチュートリアルとか読んだか?試したか?
>開発をしようとすると非常に費用がかさむ世界なのでしょうか。。
ヒント:天下のM$様が開発された代物
つか、個人(だよね?)でASP.NETを使うメリットなんてないと俺は断言する。
>>372
>このメリットは、本当に現場で活かされているのか
活かされてるも何も、うちの会社ではGoTo文使うような扱いを受ける。
どうしても使わざるを得ない場合は設計を見直す。
MVCモデルとかOOPとかその辺の本も買ってきな。
374:nobodyさん
08/02/20 23:49:11
補足:
>活かされてるも何も、うちの会社ではGoTo文使うような扱いを受ける。
文字列にタグを入れ込んで表示することが、ね。
375:nobodyさん
08/02/21 00:21:53
>>373
レスありがとうございます。
> デザインビューのプロパティやコンテクストメニューとかに
> 項目が存在していなくても、コードを書けばなんとでもなることが多い。
プロパティに項目がなければ、なすすべが無いみたいに思っていたのですが、
現場の開発ではそうでもないのですね。
私は個人的に、工夫をするコードを書くと、あらかじめ準備しているクラスを活かしきれて
いないことから、重いだけの無駄な処理をしているようなイメージを持っていたのですが、
このあたりが間違っていたようですね。
> ASP.NETのクイックチュートリアルとか読んだか?試したか?
それは読んでませんでした。@ITの記事を読みながらやってましたので。
愚痴のような話ですが、Microsoftの入門者向け情報で、VBなどは読んでいたのですが、
ウィザードを使って、作って、ほら便利でしょ。終わり。という系統のが非常に多くて、
それに応用性が無いと思って読まなくなってました。M$のは中級者向けのがないですよね。
リファレンスはしっかりとしてますが、具体的な応用性がいまいちイメージできなかったり
しています。
> つか、個人(だよね?)でASP.NETを使うメリットなんてないと俺は断言する。
そうです。今は個人でやってます。会社でやることも考えて勉強のような位置づけです。
やはり、チームを組んでアプリを組む場合にメリットがあるわけであり、どんな場合でも
メリットがあるわけではないのですね。参考になりました。
ありがとうございます。
376:nobodyさん
08/02/21 07:34:22
>>373-374
> 活かされてるも何も、うちの会社ではGoTo文使うような扱いを受ける。
> (文字列にタグを入れ込んで表示することが、ね。 )
> どうしても使わざるを得ない場合は設計を見直す。
コントロールを配置する方向で実現する方法があるのですね。
工夫をしてそのような方法が出来るかを見てみます。
> MVCモデルとかOOPとかその辺の本も買ってきな。
ASP.NETは、他のフレームワークと比べてMVCを意識しなくていいという
記事もあります(記事はASP.NET 1.0ですが)が、やはり、開発にはMVCを
意識して、役割を分けて作る必要があるということなのですね。
URLリンク(www.atmarkit.co.jp)
MVCで検索するとjavaが良くヒットしますが、ASP.NETを例にしたものは、
簡単な文章のものしか見たことがありませんが、これは、MVCを理解して、
それをASP.NETで応用するという意味でしょうか?
377:nobodyさん
08/02/21 15:02:01
>>374さんの話は、<asp:~ runat=server>タグに限った話ですか?
それとも<br>なども含めた話ですか?
378:nobodyさん
08/02/21 16:09:59
DataListの使い方について質問です。
DataListのDataSourceを文字列にすると、意図するように表示されるのですが、
ADO.NETでDataReaderから取得した文字をDataSourceに指定すると、
1マスに1文字となってしまいます。
取得した文字の確認の為、Label等に出力させてみても、改行などは入って
いないのですが、DataListにすると、1文字ずつに分断されて表示されてしまいます。
これは、何処が問題なのでしょうか?
DataListのコード
<asp:DataList id="datalist" runat="server" CellPadding="1">
<ItemTemplate>
<%# Container.DataItem %>
</ItemTemplate>
</asp:DataList>
つづく
379:378
08/02/21 16:11:00
つづき
string[] st = {"aaa", "bbb"};
datalist.DataSource = st;
datalist.DataBind();
の出力結果は、
aaa
bbb
OleDbDataReader dr = cmd.ExecuteReader();
dr.Read();
string st = dr["タイトル"] + "," + dr["メッセージ"];
datalist.DataSource = st;
datalist.DataBind();
の出力結果は、
a
a
a
,
b
b
b
b
380:nobodyさん
08/02/23 22:33:31
app_codeフォルダを作成し、その中にコードファイルhoge.csを作成したのですが、
そのhoge.csのusing 宣言でSystem.Dataが認識されません。
System.入力後にインテリセンスでもSystem.Dataが出てきませんし、メンバも利用できません。
参照設定でSystem.Dataを参照しても変わりません。
どこを修正すればよろしいのでしょうか?
381:nobodyさん
08/02/26 10:27:21
>>379
上のコードは文字列の配列を渡しているのだから、
下のコードも同じように文字列の配列を渡すようにすれば良いじゃない
382:nobodyさん
08/02/26 10:30:08
string[] st = { dr["タイトル"], dr["メッセージ"] };
でどう?
383:nobodyさん
08/02/28 13:48:03
>>381-382
それでうまくいけました。
渡すデータの形が悪かったのですね。
ありがとうございました。
384:nobodyさん
08/02/28 23:40:54
パスワード入力のinputってポストバックしたら消えるけど、この値を常に表示させたいが
どうすればいいですか
385:nobodyさん
08/02/28 23:51:48
>>384
Cookieとかじゃダメ・・・?
386:nobodyさん
08/02/29 00:28:07
すみません。クッキー以外でお願いします。
ブレークポイント設定して順に追ってみたのですが、どのタイミングで消えるのか分かりませんでした・・・
387:nobodyさん
08/02/29 00:38:41
どうしてもというのであればSessionにつっこむ
388:nobodyさん
08/02/29 01:25:24
やっぱりSessionしかないのですね。ありがとう
389: [―{}@{}@{}-] nobodyさん
08/02/29 13:04:10 BE:53832342-PLT(21001)
>>384
PassBox.Attributes.Add("value", "パスワード")
でいかが?
390:384
08/03/01 13:09:02
>>389
完璧です!
391:nobodyさん
08/03/05 12:54:57
ページ内でエラーが発生してcatch句で処理する場合など、
エラーが発生したことを表示させるにはLiteralとかで表示させるのが一般的なのでしょうか?
392:nobodyさん
08/03/05 21:45:09
global.asaxでまとめてcatchしてエラーページに飛ばす。
393:nobodyさん
08/03/06 14:34:16
サイト発行で完全コンパイルしていますが、特定ページのみコンパイルしない状態を作ることは出来るのでしょうか。
394:nobodyさん
08/03/07 00:12:53
ASP.NETでASP.NETを実行してるユーザーの権限とかいじらずに
デフォルト状態でファイルとかにログを吐くにはどうしたらいいのでしょうか?
395:nobodyさん
08/03/07 00:47:49
普通にglobal.asaxとかで出来ない?
出来ないならNetwork Serviceアカウントに権限与える必要あり。
FileSystemAccessRuleクラス当たりをググってみて
396:nobodyさん
08/03/07 01:04:24
App_Dataにでもはいとけ
397:nobodyさん
08/03/07 16:14:45
>396
うまくいきました。
398:nobodyさん
08/03/08 19:12:02 J6kJ8MXk
asp.netのSessionについて調べているのですが、
Session.SessionIDプロパティの値って、いつ設定されるのでしょうか?
最初にwebアプリのaspxファイルにアクセスした時ですか?
399:nobodyさん
08/03/08 22:01:34
はい。該当の仮想ディレクトリにアクセスされた時です。
400:nobodyさん
08/03/08 22:33:34
うそつけ
401:nobodyさん
08/03/08 22:34:01
自宅でASP.NETの勉強をしようと思い参考書を買ったのですが、不具合が…
参考書では
>Windowsコンポーネントの追加と削除」→
>Windowsコンポーネントウィザード」→
>インターネット インフォメーション サービス(IIS)」にチェック→
>「詳細」を左クリックします。
もうこの時点でアウト。
『インターネット インフォメーション サービス(IIS)』自体が表示されてません。
非常に困ってます。どうすれば表示されますか?教えてチャンですいません。
402:sage
08/03/08 22:46:29 J6kJ8MXk
Sessionオブジェクトに値を設定したときかな。
IsNewSessionプロパティを見れば判るかも。
403:nobodyさん
08/03/08 22:50:25
>401
環境は?XPの場合Home Editionだと×。IISはProfessional Edition 以上
404:401
08/03/08 23:10:59
OSはXP Home Editionです。
Professional Edition以上とは参考書に全然書いてないんで、安心しました。
勉強段階で行うのはアプリの動作確認だけだし、
使ってるレンタルサーバが「ASP.NET対応!テスト使用にもどうぞ」って謳ってるので、
IISは必ずしもクライアント側では必要ないのかも? という気がしてきました。
(間違ってたらご指摘下さい。)
お早いレス、有難うございます。