0

次のドロップダウンがあります

        <li><span>State: <asp:DropDownList ID="ddlAppState" runat="server">
                        </asp:DropDownList></span></li>

以下の関数を使用して、ページの読み込み () で入力されます

          private void ddlAppState_DataBind()
{
    string myXMLfile = Server.MapPath("~/App_Data/ActiveStates.xml");
    System.Data.DataSet dsStudent = new System.Data.DataSet();

    dsStudent.ReadXml(myXMLfile);
    ddlAppState.DataSource = dsStudent;
    ddlAppState.DataValueField = "StateID";
    ddlAppState.DataTextField = "StateName";
    ddlAppState.DataBind();
}

最初はドロップダウンの値は「--------」ですが、バックエンドでは「FD」にマップされます。「-----」が選択されているかどうかを検証したいと思います。その値は、ddlAppState を実行して取得します。 SelectedValue.ToString() は文字列「FD」であり、ボタンの onlick 関数を呼び出したくありません。

ボタンのオンクリック

 <asp:Button Style="left: 0px; position: relative" ID="btnSearch" runat="server" CausesValidation="False"
                CssClass="lbSearch closeform" Text="Search" Width="80px" OnClick="btnSearch_Click"  >
            </asp:Button></div>

 protected void btnSearch_Click(object sender, EventArgs e)
{
    try
    {
            if (ddlAppState.SelectedValue.ToString() == "FD" && ddlAppMode.SelectedValue.ToString() == "S")
      {
          SelectState.Text = " Please Select State ";
          return;
            }

            SelectState.Text = "";
        BindGridViewZipConfirmation1();

// clearFields(); }

それがどのようにできるかについての考え。ありがとうございました

4

2 に答える 2

0

SelectedIndexがゼロ(デフォルト値)より大きいかどうかを確認し、大きい場合はそれを使用SelectedValueできます。それ以外の場合returnは、クリックハンドラーから。

于 2013-01-29T09:41:55.690 に答える
0

クライアント側で検証したい場合。これを試してください

<asp:DropDownList ID="ddlName" runat="server">
    <asp:ListItem Text="Select" value="-1"></asp:ListItem>
  </asp:DropDownList>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"    ErrorMessage="Please select"  ControlToValidate="ddlName" ValidationGroup="btnSave" Display="Dynamic" InitialValue="-1">*</asp:RequiredFieldValidator>
于 2013-07-19T09:53:13.917 に答える