問題が発生しましたが、まだ解決策を見つけることができませんでした。少し単純化させてください。
2つのフォームがあります。最初のフォームには、複数選択モードが有効になっているASPリストボックスが含まれています。フォームを送信し、テスト目的で使用する他のフォームでこのコードスニペットを送信します。
protected void Page_Load(object sender, EventArgs e)
{
foreach (string formKey in Request.Form.AllKeys)
{
if (formKey != null)
{
if (formKey.Equals("ctl00$MainContent$ListBox1"))
Label1.Text = Request.Form[formKey];
}
}
}
問題は、リストボックスからの値(前のフォームで選択した値)が「、」で区切られていることです。「test1、test2、test3」。たとえば、このセパレータを「$」に変更するにはどうすればよいですか?実際の値には「、」が含まれている可能性があり、リストボックスに手動でフィードしないため、変更する必要があります。
アプリケーション全体がこのモデルを使用しているため、フォーム間でこの値を転送する他のモードを使用することはできません。次に、取得した値がワークフローに送信され、そこで操作されます。ワークフローでは、各リストボックスアイテムの開始位置と終了位置を知る必要があるため、一意の区切り文字である必要があります。
どんな助けでもありがたいです!どうもありがとうございます
MatteKarlaに感謝しますが、残念ながらこれでは私の問題は解決しません。はい、これはあるフォームから別のフォームに値を転送するための良い方法です。
ただし、リストボックスは実行時に生成され、この値を受け取るワークフローメソッドに値が送信される他の多くの「パラメーター」の1つであるため、リクエストフォームキーで上記の方法を使用する必要があります。そして、私のアプリケーションでそれを変更する余裕はありません。
私の問題は、coma( " ,
")区切り文字が、複数選択リストボックスでデフォルトで使用されていることです。
値自体にもコマが含まれている可能性があり、混乱を招くため、そのセパレータをコマから別の文字に変更する方法があるのではないかと思いました。
私が言ったように、3つの値test1
とを選択するtest2
とtest3
、私のメソッドの結果はのような文字列になります"test1,test2,test3"
。ただし、aの"test1$test2$test3"
方がはるかに優れています。
しかし、このデフォルトのセパレーターを変更することは不可能だと私は心配しています。リストボックスに値から意図したすべてのコマをフィードする前に、混乱を引き起こさないように他の文字で置き換えるなど、この問題を克服する方法を考えなければなりません。しかし、これはそれを行うための優れた方法ではありません。