0

いくつかのテキスト ボックスとドロップ ダウン リストがある「プロファイル ページの編集」を作成しています。しかし、これは起こっていません。

 <asp:UpdatePanel runat="server" ID="updatepanel1" UpdateMode="Conditional">
                         <ContentTemplate >

                             <asp:Label runat="server" Id="lbljobIndus" Text="Preferred Job Industry" Font-Names="Calibri" Font-Size="Small" ForeColor="Black"></asp:Label>
                             &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: black; font-family: Calibri; font-size: small">:</span>&nbsp;&nbsp;  
                             <asp:Label runat="server" ID="lblPreferredJobIndustry" Font-Names="Calibri" Font-Size="Small" ForeColor="Black"></asp:Label>

                             <asp:DropDownList ID="tbPreferredJobIndustry" runat="server" Height="19px" OnSelectedIndexChanged="ddlTargetedIndustry_SelectedIndexChanged">
                                 <asp:ListItem Selected="True" Value="-1">--Select Industry--</asp:ListItem>
                                 <asp:ListItem Value="1">Administration</asp:ListItem>
                                 <asp:ListItem Value="2">Hospital/HealthCare</asp:ListItem>
                                 <asp:ListItem Value="3">Medical Transcription</asp:ListItem>
                             </asp:DropDownList>

                             <br />
                             <br />
                             <br />

                             <asp:Label runat="server" ID="lblJobCat" Text="Preferred Job Category" Font-Names="Calibri" Font-Size="Small" ForeColor="Black"></asp:Label>
                             &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: black; font-family: Calibri; font-size: small">:</span>&nbsp;&nbsp; 
                             <asp:Label runat="server" ID="lblJobCategory" Font-Names="Calibri" Font-Size="Small" ForeColor="Black"></asp:Label>
                             <asp:DropDownList ID="tbJobCategory" runat="server">
                                 <asp:ListItem Selected="True" Value="-1">-Position Category-</asp:ListItem>

                             </asp:DropDownList>
                             <br />
                             <br />
                         </ContentTemplate>
                  </asp:UpdatePanel>

これは、2 番目のドロップダウン リストに入力するコードです:-

protected void ddlTargetedIndustry_SelectedIndexChanged(object sender, EventArgs e)
    {

        DataSet ds = new DataSet();
        SqlDataAdapter myda = new SqlDataAdapter("Select s_CategoryName,FK_TargetedIndustryID FROM [OfinityJobSearch].[dbo].[tm_JobCategory] where FK_TargetedIndustryID='" + tbPreferredJobIndustry.SelectedItem.Value + "'", con);
        myda.Fill(ds);
        tbJobCategory.DataSource = ds;
        tbJobCategory.DataValueField = "FK_TargetedIndustryID";
        tbJobCategory.DataTextField = "s_CategoryName";
        tbJobCategory.DataBind();
        tbJobCategory.Items.Insert(0, new ListItem("--Select Job Category--", "0"));
    }

更新パネルを使用して、他のテキスト ボックスの値がポスト バックでクリアされないようにしました。しかし、現在、ポストバックは行われていないと思います。私のコードを確認して、エラーの場所を教えてもらえますか?

4

2 に答える 2

0

U はAjaxToolkit CascadingDropDownを使用できます。これは非常に便利で便利です。ただし、CascadingDropDown の場合は、追加のサービスが必要です。

<ajaxToolkit:CascadingDropDown ID="CDD1" runat="server"
    TargetControlID="DropDownList2"
    Category="Model"
    PromptText="Please select a model"
    LoadingText="[Loading models...]"
    ServicePath="CarsService.asmx"
    ServiceMethod="GetDropDownContents"
    ParentControlID="DropDownList1"
    SelectedValue="SomeValue" />

アップデート:

完全な例はこちら

あなたの *.aspx

<asp:DropDownList ID="DropDownList1" runat="server" Width="170" />
<asp:DropDownList ID="DropDownList2" runat="server" Width="170" />
 <ajaxToolkit:CascadingDropDown ID="CascadingDropDown1" runat="server" TargetControlID="DropDownList1"
            Category="Make"  PromptText="Please select a make"  LoadingText="[Loading makes...]"
            ServicePath="CarsService.asmx" ServiceMethod="GetDropDownContents" />

ページにコードを追加する

 [WebMethod]
    [System.Web.Script.Services.ScriptMethod]
    public static CascadingDropDownNameValue[] GetDropDownContentsPageMethod(string knownCategoryValues, string category)
    {
        return new CarsService().GetDropDownContents(knownCategoryValues, category);
    }

ウェブサービスを追加

<%@ WebService
    Language="C#"
    CodeBehind="~/App_Code/CarsService.cs"
    Class="CarsService" %>

サービスコード

[System.Web.Script.Services.ScriptService]
public class CarsService : WebService
{
    // Member variables
    private static XmlDocument _document;
    private static Regex _inputValidationRegex;
    private static object _lock = new object();

    // we make these public statics just so we can call them from externally for the
    // page method call
    public static XmlDocument Document
    {
        get
        {
            lock (_lock)
            {
                if (_document == null)
                {
                    // Read XML data from disk
                    _document = new XmlDocument();
                    _document.Load(HttpContext.Current.Server.MapPath("~/App_Data/CarsService.xml"));
                }
            }
            return _document;
        }
    }

    public static string[] Hierarchy
    {
        get { return new string[] { "make", "model" }; }
    }

    public static Regex InputValidationRegex
    {
        get
        {
            lock (_lock)
            {
                if (null == _inputValidationRegex)
                {
                    _inputValidationRegex = new Regex("^[0-9a-zA-Z \\(\\)]*$");
                }
            }
            return _inputValidationRegex;
        }
    }

    /// <summary>
    /// Helper web service method
    /// </summary>
    /// <param name="knownCategoryValues">private storage format string</param>
    /// <param name="category">category of DropDownList to populate</param>
    /// <returns>list of content items</returns>
    [WebMethod]
    public AjaxControlToolkit.CascadingDropDownNameValue[] GetDropDownContents(string knownCategoryValues, string category)
    {
        // Get a dictionary of known category/value pairs
        StringDictionary knownCategoryValuesDictionary = AjaxControlToolkit.CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);

        // Perform a simple query against the data document
        return AjaxControlToolkit.CascadingDropDown.QuerySimpleCascadingDropDownDocument(Document, Hierarchy, knownCategoryValuesDictionary, category, InputValidationRegex);
    }
于 2013-07-23T07:24:23.303 に答える
0

最初の ddl に対して AutoPostBack= true を設定します

于 2013-07-23T07:16:30.930 に答える