0

私のタイトルが正しいかどうかはわかりません。

ボタンがあります。クリックすると、(リピーターのデータに基づいて) 小さなウィンドウがポップアップ表示され、ユーザーが情報を入力し、OKボタンをクリックして次のステップに進むことができます。

以下は私のコードですButton.Click

protected void btnRedeemAll_Click(object sender, EventArgs e)
    {
foreach( RepeaterItem itm in repGiftResults.Items )
{
    if (pr.AdditionalFieldsEnabled == true)
    {
        AdditionalInfoGiftProcess(pid, giftId, txtQty, txtToken);
    }
}
}

divAdditionalInfo は部門 ID、divAdditionalInfo.Style["visibility"] = "visible"; および divAdditionalInfo.Style["display"] = "table-cell"; ユーザーが情報を入力できるようにウィンドウを表示し、[OK] ボタンをクリックして続行します。

public void AdditionalInfoGiftProcess(int productID, int giftID, TextBox txtQty, UserControls_TokenControl txtToken)
{
    /*
    Some logic here
    */

    //generate pop up window
    divAdditionalInfo.Style["visibility"] = "visible";
    divAdditionalInfo.Style["display"] = "table-cell";
}

そして、以下はdivAdditionalInfohtml の私のコードです:

<div 
    id="divAdditionalInfo" 
    class="BlackCover" 
    style="VISIBILITY:hidden; DISPLAY:none;" runat="server">
<!-- 
    html code that generate the pop out window. 
    consist of text box and `OK` button, and "Cancel" button. 
-->
</div>

ボタンをクリックするとtemoBtn、時間ウィンドウ (div) が 1 つだけ表示されます。つまり、1 つの時間情報しか入力できず、OKボタンをクリックできません。

ウィンドウ(div)を1つずつ3回ポップアウトして、3回情報を入力してOKボタンを1つずつクリックできるようにします。

ただし、前回のウィンドウ ポップアウトは、これらの初期のポップ アウト ウィンドウを既にオーバーライドしているように見えます。

これを解決するアイデアはありますか?

ps: 実際には、html コードは無視できます。ポップアウトウィンドウを生成するための単なるコードです。つまり、ボタンをクリックすると、ユーザーが情報を入力してtempBtnボタンをクリックできるようにするためのウィンドウとして、部門が表示されます。id = "divAdditionalInfo"OK

4

2 に答える 2

0

ループで、入力を受け入れるものは何もありません。

あなたがしているのは、可視性を3回設定してから先に進むことだけです。

[OK] ボタンと [キャンセル] ボタンのハンドラーで、保留中のメッセージを確認し、必要に応じて次のメッセージを表示できます。

于 2013-06-11T10:56:02.640 に答える
0

ここで何をしたいですか?ユーザーが [OK] をクリックすると、何かが起こるでしょうか? それとも、ポップアップを消すために、ユーザーは [OK] を 3 回クリックする必要がありますか?

いずれにせよ、コードが現在の状態であるため、サーバーは表示可能な div を生成しています。1 回表示すると、3 回表示するのと同じ効果があります。クライアントのそばにいるときは、JavaScript を使用して、div が消える前にユーザーに 3 回操作を強制することができます。

これは、ユーザーにとって良い状況とは思えません。3 つのポップアップに個別の要素を使用することを検討してください。

編集:

コードでさまざまな要素のスタイルをどのように設定しているかはまだわかりません。div はどこで宣言されていますか? リピーターのテンプレートの中?もしそうなら、あなたのコードがコンパイルされることに驚いています。リピーターの生成されたテンプレート インスタンスをループし、FindControl("divAdditionalInfo")それぞれを呼び出して div の各インスタンスにアクセスする必要があります。

于 2013-06-11T10:47:32.470 に答える