簡體   English   中英

asp.net Dropdownlist Customvalidator servervalidate引用控件

[英]asp.net Dropdownlist Customvalidator servervalidate referencing control

我有一個從數據庫填充的下拉列表,根據業務邏輯,我需要能夠使用服務器端驗證從該下拉列表中驗證所選的項目(TEXT)。 需求狀態我不能簡單地將其作為SQL語句的一部分過濾掉。 我一直嘗試使用的解決方案是在后面的代碼中簡單地創建一個customvalidation。

稱為驗證,但我無法弄清楚如何為所選項目引用ddl DataTextField值。 當我嘗試執行asp.net系統下方的服務器端代碼時,表明我的dropdownlist在detailsview中不存在,因此提供紅色下划線。 在這種情況下,它將始終是insertmode。

建議


ASP代碼


<asp:DetailsView ID="dtlSample" runat="server" AutoGenerateEditButton="true" AutoGenerateRows="false">
      <Fields>

        <asp:TemplateField HeaderText="Position">
          <ItemTemplate>
            <%# Eval("Age") %>
          </ItemTemplate>
          <EditItemTemplate>
            <asp:DropDownList ID="ddlPosition" runat="server" AutoPostBack="True" 
                LDataSource="Select Position, PositionId from ...." DataTextField="Position" DataValueField="PositionId"
                 ></asp:DropDownList>
          </EditItemTemplate>
          <InsertItemTemplate>
            <asp:DropDownList ID="ddlPosition" runat="server" AutoPostBack="True" 
                LDataSource="Select Position, PositionId from ...." DataTextField="Position" DataValueField="PositionId"
                 ></asp:DropDownList>
          </InsertItemTemplate>
    <asp:CustomValidator ID="cvPos" Display="Dynamic" ControlToValidate = "DDLPosition"
          OnServerValidate="ddlPos_Check" runat="server" ForeColor="Red" ErrorMessage="My error message"></asp:CustomValidator>
        </asp:TemplateField>
      </Fields>

后面的代碼

protected void ddlPos_Check(object sender, ServerValidateEventArgs args)

{

    if (ddPosition.SelectedItem.Text.Contains("some value")            
        args.IsValid = false;         
    else           
        args.IsValid = true;    

}

墨菲定律,幾個小時后回答您自己的問題。

        DropDownList ddlList=DetailsView2.FindControl("ddlPosition") as DropDownList;

        if (ddlList != null)
        {

            if (ddlList.SelectedItem.Text.Contains("text")) {
                        args.IsValid = false;    
            }
             else
            {
                   args.IsValid = true;
            }

        }    

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM