トップページ⇒php
1001コメント438KB

【質問】ASP.NETスレ Part5【議論】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/01/23(金) 09:46:51ID:???
●過去ログ
Part1 - 【質問】 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/
【質問】ASP.NETスレ Part4【議論】
http://pc11.2ch.net/test/read.cgi/php/1184683786/ (dat落ち?)

あんまり需要ないのかもしれませんが。。。
0496nobodyさん2009/06/30(火) 16:05:45ID:???
>>494
AJAXなら、フォームからフォーカスが外れるたびに入力内容をチェックしにいって、
重複か重複でないかをチェックして、ScriptManager.RegisterStartupScriptで
JavaScriptで定義した変数にbool値を格納する
例 var isDuplicate = true;

登録ボタン押下時に、JavaScriptでisDuplicateの変数内容によって、
onSubmitで表示するconfirmの表示文字を変更させればいい。
cancel時にPostの処理を中止するのはどちらも同じだから。
04974792009/06/30(火) 17:26:30ID:???
>>496
ご丁寧にありがとうございます。
482,484を実装し、期待する動作は確認出来ました。
作成しデバッグしている最中にASPの制御、と言うかスタンドアロン(VB)との違いが良く分かりました。
(それにより)496の内容もすぐに理解出来ました。応用させて頂きます。
ご教授頂いた事に感謝致します。
本当にありがとうございました。
0498nobodyさん2009/07/01(水) 17:57:52ID:???
MSの開発技術大全のASP.NET編で、SQLDataAdapterコントロールが
デザイナにD&Dできるみたいな記述になってるけど、VS2005や2008でも出来たっけ?
0499 [―{}@{}@{}-] nobodyさん2009/07/01(水) 18:29:24ID:???
>>498
SqlDataSourceとかObjectDataSourceコントロールの事じゃないか
0500nobodyさん2009/07/02(木) 20:39:30ID:ZUKdZhY7
ASPでjavascriptを使わずにあるボタンを押したら、とあるテキストボックスに1を入力するっていう処理をやりたいのですが、
今まではポストバックさせてやっていたのですが、そうするといちいち画面が切り替わるのがうっとうしいので画面が切り替わらないで処理をやりたいです。
可能でしょうか?
0501nobodyさん2009/07/02(木) 20:54:55ID:???
不可
0502nobodyさん2009/07/02(木) 21:15:02ID:ZUKdZhY7
>>501
ありがとうございます
そうですか、あきらめてjavascript使うしかないですね

0503nobodyさん2009/07/02(木) 21:46:24ID:???
1って入力してもらう
0504nobodyさん2009/07/02(木) 21:51:06ID:ZUKdZhY7
目的は1を入力した状態にしたいのではなくて、テキストボックスをreadonlyにしたいのです。

javascriptで実装するにはどういうコードを書けばいいのでしょうか?
0505nobodyさん2009/07/02(木) 21:57:01ID:???

マジレスすると、TextBox.Textに1を入れた後にTextBox.ReadOnlyにtrueを設定
0506nobodyさん2009/07/02(木) 21:59:45ID:ZUKdZhY7
ポストバックさせたくないんですよ
0507nobodyさん2009/07/02(木) 23:41:47ID:???
AJAX使いなよ
ポストバックしてるけどしていないような感じで実現できるから
0508nobodyさん2009/07/02(木) 23:48:58ID:ZUKdZhY7
一番簡単に実装するには何がいいでしょうか?
当方VB、Cの経験しかありません
0509nobodyさん2009/07/02(木) 23:56:35ID:???
そろそろスルーで
0510nobodyさん2009/07/03(金) 00:01:26ID:???
WebアプリなのにJavaScriptもポストバックもだめとかそもそもが間違ってるよな。
スタンドアロンアプリでも作ってろよ
0511nobodyさん2009/07/03(金) 00:11:41ID:WYeGS7LZ
しょうがないじゃん、最近はじめたんだから。
radiobutton_checkedイベントやdropdownlist_chengedindexイベントでいちいち画面がロードされるのうざいでしょ?
0512nobodyさん2009/07/03(金) 00:30:44ID:???
>>499
いや、SqlDataAdapterだ。俺の目が腐ってなければ・・

ちなみにいまVS2008で試したがグレーアウトでデザイナにはドロップできない。
VS2005ではできるか試してもらえる人はいるだろうか。

グレーアウトになってるってことは使うなってことだよなぁ
手打ちでコーディングはできるんだから。
0513nobodyさん2009/07/03(金) 01:20:01ID:???
silverlight使えよ。
0514nobodyさん2009/07/03(金) 01:41:25ID:???
>>511
>しょうがないじゃん、最近はじめたんだから。
ブラウザは散々使っているんだろうから、その経験則から何が実現可能か不可能か判断できずに、
最近始めたばかりだと開き直るようじゃあ、あなたにWebアプリは向いてないよ。

↓お好きなのドゾ
Silverlight Flash Ajax ActiveX JavaApplet

>>512
標準ではツールボックスにSqlDataAdapterの表示がないんだが、
どれを参照すれば表示されるん?
0515nobodyさん2009/07/03(金) 01:52:55ID:???
>>514
コントロールツールボックスを→クリで「全て表示」とかなかったっけか
0516nobodyさん2009/07/03(金) 13:20:41ID:???
>>512
2005は手元に無いからわからんが、2003なら出来るな
データアダプタ構成ウィザードが立ち上がってきた
05175002009/07/04(土) 00:48:45ID:gSOLs+sG
いろいろ調べた結果ユーザーコントロールを使用することにより実装することができました
ここって結構無知が多いんだな
0518nobodyさん2009/07/04(土) 01:41:16ID:???
PostbackもJavaSciptも使用せずに動的に変更なんてできませんよw
0519nobodyさん2009/07/04(土) 01:43:34ID:???
だなぁ、多分ASP.NET自体を新しい概念で開発したんだろうなw
その場合.NETって名前そのものが変わると思うけどw
05205182009/07/04(土) 01:50:28ID:???
>>519
無知で結構だから、もし実現できるのなら教えてほしいよ

何を勘違いしたんだろうな。
ユーザコントロールつかってもポストバックはするし。
ユーザコントロールはJavaScriptの実装には不向きだから、
AJAXでも実装したんかな?
0521nobodyさん2009/07/04(土) 02:05:56ID:???
ICallBackEventHandlerで勘違いしたに20000000000ジンバブエドル
0522nobodyさん2009/07/04(土) 02:19:19ID:???
JavaScriptおもいっきしつかっとるやんw
つか、それならAJAX使ったほうが楽でしょ
0523nobodyさん2009/07/04(土) 04:29:22ID:???
要は画面が切り替わったのに気付かなければいいんだろ?
つ Page.SmartNavigation

ASPとASP.NETは別物だからちゃんと区別して書こうな
ホントにASP.NETじゃないASPの話だったらスレ違いだがなw
0524nobodyさん2009/07/04(土) 09:47:11ID:???
>>517
UpdatePanelで勘違いしたに30000ペリカ
0525nobodyさん2009/07/04(土) 16:47:14ID:???
>>523
聞いたことがないと思ったら2.0以降でDeprecatedか
0526nobodyさん2009/07/04(土) 17:25:28ID:???
ここ最近みてると、

ASP.NET→JavaScriptの関数の実行(引数引き渡しも含む)
JavaScript→ASP.NETのメソッドの実行(引数引き渡しも含む)

という需要が多そうだな
0527nobodyさん2009/07/05(日) 11:58:29ID:Km3uJP2Y
HTMLデザイナの表示をカスタマイズで
カラムの幅を狭めると、

デー
タバ
イン
 ド

みたいになって縦長になってウザイっす。。
なんで「データバインド」なんて意味のない文字列を表示させるのかな。
これを消したいです。なんか方法ありませんか????
0528nobodyさん2009/07/05(日) 14:08:13ID:???
データバインドであることがわかるし、
縦長になるとデザイン上の狂いのあることが発見できることもある
ウザイときもあるが表示のおかげでデザインの狂いを修正できたことが何度かあるよ

従って一長一短
0529nobodyさん2009/07/05(日) 14:18:45ID:???
んなのMSに聞けばいいだろ?
ここはお前のVSサポートセンターじゃねえ
0530nobodyさん2009/07/05(日) 14:22:06ID:???
このスレの存在意義なくすなよカス
0531nobodyさん2009/07/05(日) 14:33:29ID:???
2chで煽るのが僕のレーゾンデートルですw
0532nobodyさん2009/07/05(日) 15:11:29ID:???
>>528
なるほど。そういう物だと理解します。
0533nobodyさん2009/07/05(日) 15:32:32ID:Km3uJP2Y
GridViewのHyperLinkFieldに対して、2個のSQLのカラムを使って、DataTextFormatStringを作りたいです。

以下のSQLで抽出した2個のカラムを結合した文字列をハイパーリンクに表示させたいです。
select fig_name, fig_number from figure

これで抽出できるのはおのおの、
・fig_name:
'図'と'表'のいずれか
・fig_number:
図表番号。数字。

とします。

そしてハイパーリンクにはこの2個をくっつけて

“図1”とか、“表2”とかにしたいです。

とりあえず、以下のようにやったけどだめでした。。
DataTextField="fig_name,fig_number"
DataTextFormatString="{0}{1}"

どなたか、ヒントでも結構ですのでよろしくお願いします。。
0534nobodyさん2009/07/05(日) 17:32:49ID:???
>>533
簡単に思いつくのは、TemplateFieldで自前で追加
0535nobodyさん2009/07/05(日) 17:55:40ID:???
SQLのクエリで自前で合成したフィールドを作ればいいんでないの
SELECT (Table.fig_name + Table._number) AS fig_fullname FROM Table
とか。

でもこれだとSQLDataSourceが使えなかったり、
GridViewの編集や削除が使えない可能性があるから嫌われそうだけど。
>>534のTemplaterFieldにしても編集とかできなさげ。

んで、結局、編集、削除、追加は自前で実装して、
どうせ実装するならRepeaterでいいじゃんということに落ち着く流れになりそう。
0536nobodyさん2009/07/05(日) 21:51:56ID:???
>>534,535さん
ありがとうございます。
RowCreateでデータベースから抽出された結果にアクセスできたので、
そこで文字列をつくって、ハイパーリンクに貼り付けました。
やりかたはダサイかもしれませんが、まぁまだ素人なので。。
0537nobodyさん2009/07/06(月) 00:03:42ID:???
ユーザーコントロールのIDを取得したいのですが、どうすればいいのでしょうか?
0538nobodyさん2009/07/06(月) 00:41:21ID:???
ClientID
0539nobodyさん2009/07/06(月) 01:25:51ID:bdwzJZ3p
UpdatePanel凄すぎワロタ。やっぱMSはすげーなぁ。
0540nobodyさん2009/07/06(月) 06:49:00ID:???
>>524
おめでとう どうやら君が真のエスパーだったようだ
0541nobodyさん2009/07/06(月) 10:36:39ID:???
開発技術大全って.net 3.5以降とかのは出版されてる?

>>516とかみるとかなり古そうだが。。
0542nobodyさん2009/07/06(月) 12:44:03ID:???
開発技術大全は記述されてるフレームワーク関連は古いが、
それ以前のASP.NETのアーキテクチャに関する仕組みを知りたいということなら
そんなに色あせないで見ることが出来る。

データベース関連ならADO.NETとLink To Entitiesの本を買うべきだし、
コントロールの使い方ならもっと別の本を買うべき。
それに、どうせいろいろやりたくなると、
DataSet+Repeaterコントロールに落ち着くことになるからね
0543nobodyさん2009/07/06(月) 18:51:33ID:/VP1pSJi
テキストボックスのIDをascxからaspxに持ってきたいんだけど、string型になっちゃうのは仕様なんですが?
textbox型で持ってくることは出来ないのでしょうか?
ctypeで変換しようとするとstring型はtextbox型へ変換できませんってでます
0544nobodyさん2009/07/06(月) 19:01:42ID:???
無知な俺らに聞いても無駄だと思うが
ユーザコントロールを作るということは、新しいクラスを設計するということ。
ユーザコントロールにサーバコントロールを配置するということは、
そのクラスのメンバ変数にサーバコントロール型のオブジェクトを
privateのスコープで持つということと同じなので、
ユーザコントロール側で、そのテキストボックスのインスタンスを公開するプロパティを宣言すればいい。
そうすれば、ユーザコントロールに配置したテキストボックスのIDは知る必要がない。

でもそれだと隠蔽の意味がなくなってしまうので、
外からでも変更可能なプロパティだけを
ユーザコントロールのプロパティとして再定義して公開するのが普通のやり方。
0545nobodyさん2009/07/06(月) 19:11:22ID:/VP1pSJi
>>544
つまりどういうことですか?
コードで書いて教えてください
・user.ascx
protected sub name () as textbox
get
return txtname.clientID
end get
end sub

・main.aspx
dim TextName as textbox = name
TextBox.text="Test"

今はこんな感じで書いていてだめになっています
0546nobodyさん2009/07/06(月) 19:32:14ID:???
無知だからVBはわからないがC#だと
public string Text
{
 get { this.TextBox.Text = value; }
}
0547nobodyさん2009/07/06(月) 19:35:52ID:???
ああget→setかな
すまん無知で
0548nobodyさん2009/07/06(月) 19:37:50ID:???
Protected ReadOnly Property name() as TextBox

Get
Return txtname
End Get

End Property

でいいんちゃうか。
0549nobodyさん2009/07/06(月) 19:41:53ID:/VP1pSJi
>>548
txtnameだけでIDを送ることができるんですね。
ありがとうございました。
0550nobodyさん2009/07/06(月) 19:43:38ID:???
>>548
少なくともユーザコントロールで、所有してるオブジェクトをそのままプロパティで公開するのは止めたほうがいいよ
0551nobodyさん2009/07/06(月) 19:57:47ID:???
それは分かってるがID:/VP1pSJiが何をしたいか分からんことには。。
0552nobodyさん2009/07/06(月) 20:16:06ID:/VP1pSJi
すいません>>545がちょっとまちがっていました
・user.ascx
protected sub name () as textbox
get
return txtname.clientID
end get
end sub

・main.aspx
dim TextName as textbox = name
TextName.text="Test"

つまりユーザーコントロールにあるコントロールをaspx側で操作したいというこです
0553nobodyさん2009/07/06(月) 20:19:06ID:???
だからコントロールのプロパティをUserControlのプロパティとして公開しなさいっての
0554nobodyさん2009/07/06(月) 20:21:29ID:/VP1pSJi
>>553
どうやるんですか?
0555nobodyさん2009/07/06(月) 20:57:29ID:???
>>554
>>546-547
0556nobodyさん2009/07/06(月) 22:05:11ID:Igs6oFx6
質問させてぇ〜

「無効なポストバックまたはコールバック引数です。
イベントの検証は、構成の <pages enableEventValidation="true"/>、
またはページの <%@ Page EnableEventValidation="true" %> を使用して・・・」

っていう糞長いエラーが。。

状況はMultiViewの中のViewのなかのGridViewのなかに配置したTemplateField(イメージボタン)
に、
CommandName="delete"
OnClientClick="return confirm('削除してよろしいですか?');"

ってプロパティ設定をして、ゴミ箱のイメージボタンをおしたら削除されるようにしたわけ。

で、さらにこのGridViewのイベントハンドラを以下のようにしてるわけ。
OnRowCommand = "GridViewMeans_RowCommand"

で、このイメージボタンを雄と件のエラーが発生します。。。

そもそもこのエラーって何を意味するの?
「ぽすとばっくやコールバックのイベントが、それをレンダリングしたサーバコントロールから由来するとだめ」
しかもセキュリティの理由から??
意味が分からない。
意味が分からないから対処方法も想像できない。単にenableEventValidation="false"にすればいいよ、とか
意味も分からず闇雲にトライエラーしたくないし。
だれか、ずばっと、こういうパラダイムがあるから、それを解決するためにこういうセキュリティ上の配慮が必要で、そのために
チェックしてるんだ!!!とか男らしい回答求む。
0557nobodyさん2009/07/06(月) 22:24:58ID:???
>>556
http://techbank.jp/Community/blogs/mymio/archive/2008/03/28/381.aspx
0558nobodyさん2009/07/06(月) 22:53:47ID:???
>>557
ご回答ありがとうございます。
するってぇと、何でImageButtonをViewStateに保存しちゃまずいんですかね?
そういうモノだから??
0559nobodyさん2009/07/06(月) 22:56:34ID:???
とりあえず試してみました。
変わりませんでした。。
やはりあの、、原理を。。
0560nobodyさん2009/07/06(月) 23:10:21ID:???
例えばRepeaterやGridViewコントロールなどのように、
動的に行が生成されるコントロールで、
さらに動的にRepeaterやGridViewなどのような動的に行を生成するコントロールを作成し、
その中でClickイベントを実装すると、その問題が発生するということだったはず。

ページによって存在するかどうかわからないイベントの発生元が存在した場合に、
それを検証する術がないのでエラーになるという感じだったような気がする。
例えばRepeaterの中のLiteralコントロールに、サニタイズをせずに文字列を表示させてしまい、
擬似的にポストバックされるコードを記述されてしまうのを検知するのと区別が付かないとかなんとか。

記事のありかは忘れた。
0561nobodyさん2009/07/06(月) 23:23:44ID:???
>>560
おお〜。なるほど!ありがとうございます
分かりません!

でも自分の頭じゃ理解できないってことだけは分かりました。

まぁMFCなんかでもダイアログボックスを表示中に他のタイマーとかのイベントがくると
ダイアログボックスのなかのメッセージポンプがそれを処理しちゃって、
その辺を考えて作らないといけないとか、そんな苦労を思い出します。
要は凝ったフレームワークにありがちな落とし穴って事ですかね。

うーん。困ったw
0562nobodyさん2009/07/06(月) 23:35:38ID:???
>>554
・main.aspx
dim TextName as textbox = CType(ユーザコントロールのID.FindControl("txtName"), TextBox)

これでお前のやりたいことはたぶんできるだろう

これをやるべきじゃないとか何とかいろいろあるんだが、
まあそれは勉強してくれと言うしかない
05635612009/07/07(火) 00:48:14ID:???
いろいろ試行錯誤した結果、TemplateFieldのItemTemplateの中身がLinkButtonだと削除機能は全く問題ないけど、
ImageButtonだとだめみたいです。
ImageButtonにしてEnableViewStateをFALSEにしてもだめみたいです。
なんか、ImageButtonがだめのかねぇ。
もう寝ます。
05645612009/07/07(火) 21:59:56ID:???
海外のサイトあさって回答を見つけたよ。
なんでもGridViewのサーバーサイドのイベントが2回以上起こると発生するらしい。
自分の場合は最初に(書いてなかったけど)RowCreateイベントを使ってる。
そして2回目はボタンをクリックしたときに発生する。
この2回のポストバックにおいて、RowがもってるID(つまりe.Row.ID)が食い違っていると
この検証に引っかかるらしい。
(ただのMSのバグじゃねーの??)
自分の場合、最初はRowCreateで、この時点ではe.Row.IDはNULL、たぶんボタンをクリックしたときはなんか値が入ってるんだろうね。
それが食い違っているからだめ〜ってこと。
なんで最初にユニークな値を突っ込んでおけばいいらしい。
つまり
RowCreate()
{
e.Row.ID=Guid.NewGuid().ToString();
}

これでOKだった。でもなぜLinkボタンならよいのかは不明。Linkボタンはポストバックじゃないからかな。
0565nobodyさん2009/07/07(火) 22:06:15ID:???
1ページに対してイベントは1回だから別に間違ってないだろ
それこそ、故意にイベントを発生するタグを挿入される危険性を排除するのが目的なんだから
0566nobodyさん2009/07/07(火) 22:10:13ID:???
なんだ、兄さんよく知ってる感じだな。
もっと早く出てきて教えてくれよ。
0567nobodyさん2009/07/07(火) 22:27:17ID:???
IDが変わるような操作したあと、databindし直すのが正しい操作じゃないのか?
0568nobodyさん2009/07/07(火) 22:58:50ID:???
>>567
たぶんあなたの言っていることは正しい。
0569nobodyさん2009/07/07(火) 23:52:10ID:???
javascriptどうすれば簡単に覚えられますか?
VBに浸りすぎてぜんぜんわからん
0570nobodyさん2009/07/07(火) 23:57:57ID:ID58Jon/
.NETではなくASPなのですが、スレがないのでこちらに書き込みます。
DBテーブル上にBASE64エンコードされた画像データ(テキスト)が格納されています。
これをデコードしてresponseで出力したいのですが。。

エンコードはBASP21のBASE64関数を使い、ファイル経由で行いました。
デコードはファイル経由にしたくないので、なんとか直接出力したいのですが。
ちなみにBASP21でデコードすると

Dim o_buf
o_buf = objBASP.BASE64(rsRecord.Fields("Field_name").value, 1)
Response.BinaryWrite o_buf
Response.End

のような感じになりますが、o_bufにバイナリイメージの先頭数byteしか入ってこなかったので、
BASP21は使えないと考えています。
「これぞ王道」のような方法があればお教えください。
いまさらながらASPでプログラムを作成する案件がでてきて、慣れない中苦戦しているもので。。
よろしくお願いします。
0571nobodyさん2009/07/08(水) 00:10:09ID:???
>>570
>エンコードはBASP21のBASE64関数を使い、ファイル経由で行いました。
直接デコードしたら表示できる?

>デコードはファイル経由にしたくないので、なんとか直接出力したいのですが。
ファイル経由にしたらデコードできる?

>o_bufにバイナリイメージの先頭数byteしか入ってこなかったので
なんで入ってこないの?

>「これぞ王道」のような方法があればお教えください。
バイナリのままデータベースに保存できないの?
0572nobodyさん2009/07/08(水) 00:19:39ID:???
>>569
VBを窓から投げ捨てる
0573nobodyさん2009/07/08(水) 01:35:13ID:ZNTcUj46
レスありがとうございました。

>>エンコードはBASP21のBASE64関数を使い、ファイル経由で行いました。
>直接デコードしたら表示できる?

>>デコードはファイル経由にしたくないので、なんとか直接出力したいのですが。
>ファイル経由にしたらデコードできる?

 ファイル経由でのデコードはできています。(BASP21利用で)
 このファイルをビューアで見ることもできます。
 サーバ負荷が高くなりそうなので、ファイル経由は避けたいと思っています。

>o_bufにバイナリイメージの先頭数byteしか入ってこなかったので
なんで入ってこないの?

 BASP21の関数利用の結果がそうなっていました。
 ここは理由はよくわかりません。。

>「これぞ王道」のような方法があればお教えください。
バイナリのままデータベースに保存できないの?

 バイナリのまま保存する方法も現在調査中です。
 エンコードする方法と、両方を調べている最中です。

 どうぞよろしくお願いします。
0574nobodyさん2009/07/08(水) 09:09:29ID:???
>>573
モード6と7が対なのはわかるんだけど、
それと、その他のモードに互換性があるのかな
他のは、いわゆるwidestringだけに対応してて、バイナリには対応してないんじゃないのかな。
異なるモード間で互換性がないと意味がないから、
ファイルをエンコードするのに、FSOでファイルを読み込んで、
一度変数に入れてから6と7以外のモードで変換してみたらできるのかな?
0575nobodyさん2009/07/08(水) 18:32:48ID:???
aspの質問ですらなく、BASP21の話じゃないか、それ
BASP21って専用のスレとかないのか?
それか、サポート付きの有償版みたいなのなかったか?

BASE64ってそんなに難しい規格じゃないから、
自分でデコードする関数書いたらどうだね
0576nobodyさん2009/07/09(木) 00:56:21ID:???
このスレ的には、
FCL使えって感じだけどな
0577nobodyさん2009/07/09(木) 17:08:52ID:???
Framework Class LibraryってClassicASPにも存在するの?
0578nobodyさん2009/07/09(木) 22:37:40ID:???
ページの名前変えたらものすごい変なエラーが出るようになった。。
0579nobodyさん2009/07/09(木) 22:59:29ID:???
ASP.NETは一つ一つのページがpertialクラスになってて、
ページ名がクラス名になってるんだけど、
リネームしてもそのクラス名は変更されないから
リネームしたことでページ名が重複しちゃったんじゃね?
0580nobodyさん2009/07/09(木) 23:02:18ID:???
>>579
まぁ変え方がまずかったんだと思う。いま一生懸命直してます。
0581nobodyさん2009/07/09(木) 23:11:57ID:???
1日1回はローカルでもいいから、別のトコにバックアップとったほうがいいよ
データベースがらみとか、アドオンの帳票がらみでわけわからん具合になること結構あるから
0582nobodyさん2009/07/11(土) 14:43:11ID:???
よくも悪くもバッドノウハウの固まり
0583nobodyさん2009/07/13(月) 00:21:32ID:???
画面上に100個位コントロール(TextBox)が並んでて、Postされた時に一々値を拾うのが
めんどくさいんですが。なんか上手い方法無いですかね?
特に、Repeaterで自動生成されたTextBoxとか、IDもサーバで勝手に振られるのでどうして
いいのか分かりません。

やりたいこと:Postされた値をなんか上手い方法でDataSetに入れてしまいたい。
DataBindって参照しか出来ないEvalじゃなくて、双方向更新も可能なメッソドもあるとか?
0584nobodyさん2009/07/13(月) 01:18:02ID:???
>>583
具体的には忘れたけど、こんな感じ

■Repeaterの場合
for (int i = 0; i < this.Repeater1.Items.Count; i++)
{
 RepeaterItem ri1 = this.Repeater1.Items[i];
 TextBox textBox = (TextBox)ri1.FindControl("textBox");
}

■ページにポトペタした場合
Control control = this.Page.FindControl("controlName");
でID名でコントロールが取得できるので、連番で名付けてループさせて取得すればいい

DataSetに格納したい行をClassか、structで宣言して、
ループする度にインスタンスを生成し、IList<T>に格納していけばいい。
別途IList<T>からデータを取得してDataSetに格納するクラスを別途作成す。。

0585nobodyさん2009/07/13(月) 02:12:46ID:???
>>583
>DataBindって参照しか出来ないEvalじゃなくて、双方向更新も可能なメッソドもあるとか?
使い勝手があれだから、きっと絶対必ず役に立たんがBindというのはある。
例えばObjectDataSourceのConflictDetectionを設定してやれば、
UPDATEやDELETEで指定したメソッドに対して、
変更後の値と変更前の値を自動で放り投げてくれる。
0586nobodyさん2009/07/13(月) 16:29:19ID:???
VS2005 + IIS6.0 + IE6.0 or 7.0で開発しております。
DataGrid(GridViewではありません)のヘッダー固定に関しての質問です。

DataGridのヘッダー行を固定しようと思い、ネット上でサンプルを参考にして
浮いているように見えるのですが、とりあえずヘッダー行の固定を実装しました。
参考URL:http://jsajax.com/aspGridView/Chapter1/ch1-03.aspx

ですが、この固定しているヘッダー行が常に最前列に出ているようで
画面上のメニューバーから展開されるサブメニュー項目が、ヘッダーの後ろに表示されてしまいます。
メニューバーはJQueryで作成しています。
参考URL:http://css-tricks.com/examples/SimplejQueryDropdowns/

JQueryで作成している箇所は、DBから動的に項目を取得して
メニュー自体をHTMLで作成しているので、JQueryをはずすことはできません。

ヘッダー行かメニュー項目のZ-INDEXで解決するかと思ったのですが、
どうも効いてないようで解決方法の糸口が見つかりません。
どなたか詳しい方いらっしゃいませんでしょうか?


0587nobodyさん2009/07/13(月) 16:53:47ID:???
jquery.dropdownPlain.jsでz-index記述してみたら
0588nobodyさん2009/07/13(月) 18:05:58ID:???
>>587
やってみましたが結果は変わらずでした

固定しているヘッダー行が浮いたような状態になり、
DataGridよりも若干右にズレているのも気になります。
これが問題なんでしょうか・・


0589nobodyさん2009/07/13(月) 18:25:38ID:???
メニューを表示させなければうまくいくのか?
あと改行してメニューが干渉しない位置にヘッダーを表示させて場合はうまくいくのか?

うまくいくのならメニューを表示させたことで、メニューのスタイルシートが、
ヘッダのスタイルシートに悪影響を及ぼしてるんだろうから、
メニューの何が悪さをしてるのか、一つ一つスタイルを削って試して見るしかない
0590nobodyさん2009/07/14(火) 21:55:30ID:s5DuVBkc
VS2008、C#でASP.netという構成ですが・・・すいません、ビルドの後、プリコンパイルされたDLLというのは何処に格納されるのでしょうか?
ASP.net 2.0の、しかもCodeBehind属性を使っているレガシーなアプリをメンテナンスしているのですが、CodeBehindに指定されている.csの内容を修正してもそれが反映されません。
(aspxの内容を修正した場合は反映されています)

ビルドしてプリコンパイルすればいいかと思ったのですが、ビルドしても\binに格納されているDLLが更新されないのです。
おそらくどこかに設定があると思うのですが、見つけることが出来ませんでした。
よろしければアドバイスをお願いします。

ちなみに、Webサイトのプロパティの「MSBuildオプション」→「出力フォルダ」は、修正してみましたが特に変化はありませんでした。
0591nobodyさん2009/07/14(火) 22:00:55ID:???
プロジェクトフォルダ-releaseフォルダの中かな
もしくはdebugフォルダ
05925902009/07/14(火) 22:44:54ID:???
>>591
早速のお返事、ありがとうございます。
が・・・ありませんねぇ、どちらも。
もしかしてプリコンパイルは関係ないのかな? でも、今参照しているbinの中のdll、参照外すと動かなくなるしなぁ・・・。
0593nobodyさん2009/07/15(水) 01:38:50ID:???
VS2008のASP.NET2.0ということは、Webアプリでなく、Webサイトだと思うけど、
参照設定で、他のDLLを参照する設定になってない?
普通、通常に使用しているだけなら、Webサイトで作成していてbin以下にdllが
作られることはないと思う。
だからビルドしても、外部参照のdllは更新されるはずがないような気がする。

webアプリだったら、あまり詳しくしらないのでよくわからん。
0594nobodyさん2009/07/15(水) 05:36:31ID:???
CodeBehindならWEBアプリな予感
だったらビルドしたらbinディレクトリにあるはずだが

WEBサイトならビルドしてもDLLは(見えるところには)作成されない
プリコンパイルってVSからできたっけ?


というか、参照してるDLLってなんのこと言ってるんだ?
そのプロジェクト以外のDLLをBinに入れて参照してるなら、
そんなもんはそのプロジェクトいくらビルドしても変わるわけないぞ
0595nobodyさん2009/07/15(水) 05:56:10ID:???
>>594
IDEからプリコンパイルできると書いてあるね
http://msdn.microsoft.com/ja-jp/library/bb398860.aspx

Webサイトでもコードビハインドだし、
「プリ」ってわざわざ付けるということは、webサイトなんじゃないかと思うんだけど。
0596nobodyさん2009/07/15(水) 11:45:02ID:???
エスパー解答

実はプリコンパイルは関係なくて、
>CodeBehindに指定されている.csの内容を修正してもそれが反映されません。
>(aspxの内容を修正した場合は反映されています)
のあたりを詳しく聞く必要があるとみた!

.csの内容を修正しても反映されないって、例えば画面の初期化処理だとか、
ポストバック時の処理を変えたりしてみても以前のロジックが走る、
ってことかな?

.csを削除してみるだとか、新しいページ追加して確認してみるとかはどうでしょう?

プリコンパイルとかWebサイトとかの話はよく分からないので、分かる方お願いします。
■ このスレッドは過去ログ倉庫に格納されています