0

javascript confirm以下のように作成しました。

<script Type="Text/Javascript">

function CheckListBox(lvi)
{
    if(lvi == "")
    {
        if(confirm("Are you sure?"))
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}

</script>

コントロールが空かどうかをテストする必要がありListBox.Itemsます... aspx ページで既に参照を作成しました

<script language="javascript" type="text/javascript" src="/JS/confirm.js"></script>

aspx.cs私は自分のページでそれを呼び出す方法を知りたい. . . だから私は渡すことができますparameter

string oi = Listbox_Clubes.Items.Count.ToString();//Its the parameter I want to pass
4

2 に答える 2

0

JavaScript の場合、コード ビハインドなしで値を取得できます (これは、クライアント ID を取得するために、スクリプト コードが同じページにあることを前提としています)。

 <script>
     function ClickListBox() {
         if ($("#<%= Listbox_Clubes.ClientID  %>").val() === null) {
             if (confirm("Are you sure?")) {
                 return true;
             }
             else {
                 return false;
             }
         }
     }
 </script>

同様に、サーバー側で検証するために JavaScript を使用しません。投稿したコードは、ListBox 内のすべての項目を返します。選択された項目の数を取得する 1 つの方法を次に示します ( .ToString()OP コードの例に基づいて使用しています)。

string oi = Listbox_Clubes.Items.Cast<ListItem>().Where(i => i.Selected).Count().ToString();

ただし、この値を取得してクライアント側に戻して検証を行う理由はありません (投稿でやりたいことのように思えます)。主な理由は、これにはポストバックが含まれ、クライアント側の検証は、その性質上、ポストバックの前に発生する必要があるためです。また、クライアント側の検証がある場合でも、サーバー側の検証を行う必要があります。

関連: コード ビハインドでは、次の方法で何かが選択されているかどうかをテストできます。

bool hasValue = Listbox_Clubes.SelectedItem != null;

.SelectedItem、リスト コントロール内の最小のインデックスを持つ選択された項目を返します。何も選択されていない場合、この値はnull... であるため、値がそうでない場合はnull、少なくとも 1 つの項目が選択されていることがわかります。

少なくとも 1 つのアイテムを選択するように要求する場合は、RequireFieldValidatorを使用して、両方の検証を処理させることができます。ASP.NET バリデーターをあまり使用したことがない場合は、それを読んでおくとよいでしょう。

おそらく、クライアント側の検証とサーバー側の検証、およびそれらの使用方法についてもっと読む必要があるように思えます...それらを混同しているように見えるからです。

カウント コードは、ASP:ListBox Get Selected Items - One Liner?のコードの修正版です。

于 2013-01-22T18:48:33.670 に答える
0

コード ビハインドから JavaScript を実行する方法については、このリンクを参照してください。

protected void Page_Load(object sender, EventArgs e)
{
     ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString(), "CheckListBox(" + Listbox_Clubes.Items.Count.ToString() + ");", false);
}

注: aspx ページに ScriptManager コントロールを追加する必要があります。

于 2013-01-22T19:07:01.907 に答える