出来るのだASP Q&A掲示板(過去LOG)
訪問数 52046
昨日 889
今日 776 【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。 |
![]() ![]() ![]() ![]() ![]() |
[2539] Re:アルゴリズム? |
投稿者:ぽんぽんさん 2002/08/24 10:30:48 |
早速のご回答ありがとうございます。 質問内容がわかりにくく、申し訳ありません。 > >チェックされている案件の申請書番号をhiddenに書き込み、 > >チェックされていない場合は「""」を書き込むようにしています。 > >ただし、並び替えが発生した場合は、書き込むインデックスが同じなためか、 > >上手く処理されません。 > > 現状は、 > > 「hidden の Name に ASPが作る連番を与え、 > チェックされたら hidden の Value に申請書番号を書込む。 > チェック状態は sessionに保持する。」 > > と読めますが、これだと途中でソートされたら確かにメチャクチャになるので、 > > 「全hidden の Name にユニークな値(ex.申請書番号)を与え、 > チェックされたら hidden の Value に "checked" を書込む。 > session変数にもユニークな名前を与える。」 > > ならどうでしょう。 現状、下記の処理を想定してみました。 如何でしょうか? ---------------------------------------------------- ■gv_workList(n1, n2) n1:レコード件数分 n2:指定列情報 ■DAT_WORKID = 申請書番号の格納されている列番号 <% '@ 初期表示 If "" = gv_reload_type or true = isNull(gv_reload_type) then '@ 初期起動時、デフォルトはすべての案件がチェック済みとするため、 セッションに情報を格納する。 For ic = 1 To gv_workNum Session("GWSV_SELECT_WORKID") = Session("GWSV_SELECT_WORKID") & _ gv_workList(ic, DAT_WORKID) & "," Next '@ ページ切り替え等 ElseIf false = gv_reload_type Then Session("GWSV_SELECT_WORKID") = "" For ic = 1 To gv_workNum If Request.Form("id_" & gv_workList(ic, DAT_WORKID)) = "cheked" Then Session("GWSV_SELECT_WORKID") = Session("GWSV_SELECT_WORKID") & _ gv_workList(ic, DAT_WORKID) & "," End If Next '@ 案件開封後から復帰した場合 ElseIf true = gv_reload_type Then 現状処理なし End If '@--- hidden情報作成 START Dim aryWorkID aryWorkID = Split(Session("GWSV_SELECT_WORKID"), ",") For ic = 1 To gv_workNum bFlg = false For ix = 0 To UBound(arySelectWork) If gv_workList(ic, DAT_WORKID) = arySelectWork(ix) Then bFlg = true Exit For End If If bFlg = true Then %><input type="hidden" name="id_<%= gv_workList(ic, DAT_WORKID) >" value="cheked"><% Else %><input type="hidden" name="id_<%= gv_workList(ic, DAT_WORKID) >" value=""><% End If Next Next '@--- hidden情報作成 END . . . '@--- 一覧表示 START For ic = start To end PutCheckBox( ic, gv_workList(ic, DAT_WORKID) Next '@--- 一覧表示 END '@--- 関数PutCheckBox() START Sub PutCheckBox( arg_Idx, arg_WorkID ) Dim aryWorkID For ic = 1 To gv_workNum bFlg = false aryWorkID = Split(Session("GWSV_SELECT_WORKID"), ",") For ix = 0 To UBound(aryWorkID) If arg_WorkID = aryWorkID(ix) Then bFlg = true Exit For End If Next If bFlg = true Then %><INPUT TYPE="checkbox" NAME="chkSelectWork<%=arg_Idx%>" cheked><% Else %><INPUT TYPE="checkbox" NAME="chkSelectWork<%=arg_Idx%>"><% End If Next End Sub '@--- 関数PutCheckBox() END ---------------------------------------------------- 尚、上記処理中(gv_workList)に情報がはいる形となっていますが、 一覧表示する度に情報が増えた(または減少)した場合も対応しなければなりません。 減る場合については特に問題ないのですが、 増えた場合については、その増えた申請書番号はチェックされた状態でなければなりません。 よろしくお願いします。 |
![]() ![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() |
TreeBBS For ASP V.0.1.3 |