2

こんにちは、CascadingDropDown の選択された値の妥当性を使用するのに問題があります。

それぞれにajax CascadingDropDownを使用した3つのaspドロップダウンコントロールがあります。

データを 3 つの CascadingDropDown にバインドするのに問題はありませんが、CascadingDropDown を再バインドすることが問題です。

単純にやりたいことは、渡したい CascadingDropDown の選択された値を持つ Gridview からレコードを選択し、選択した値で CascadingDropDown を再バインドすることです。

以下を含むコードを投稿しています。

1-ASP.NET コード。

グリッド ビューから選択されたレコードを処理するための 2 コード ビハインド。

3- CascadingDropDown へのバインド データを処理する Web サービス。

選択した値で CascadingDropDown にデータを再バインドする方法をアドバイスしてください。

ちなみに、コードに示されているように、選択した値の妥当性を使用しましたが、機能しておらず、エラーはありません。

ありがとうございました、

................... ASP.NET コード ................................ ..

 <%@ Page Title="" Language="C#" MasterPageFile="~/Master.Master" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="IMAM_APPLICATION.WebForm1" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
        DataKeyNames="idcontact_info" DataSourceID="ObjectDataSource1" 
        onselectedindexchanged="GridView1_SelectedIndexChanged">
        <Columns>
            <asp:CommandField ShowSelectButton="True" />
            <asp:BoundField DataField="idcontact_info" HeaderText="idcontact_info" 
                InsertVisible="False" ReadOnly="True" SortExpression="idcontact_info" />
            <asp:BoundField DataField="Work_Field" HeaderText="Work_Field" 
                SortExpression="Work_Field" />
            <asp:BoundField DataField="Occupation" HeaderText="Occupation" 
                SortExpression="Occupation" />
            <asp:BoundField DataField="sub_Occupation" HeaderText="sub_Occupation" 
                SortExpression="sub_Occupation" />

        </Columns>
    </asp:GridView>
    <asp:Label ID="lbl" runat="server" Text="Label"></asp:Label>
    <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
        DeleteMethod="Delete" InsertMethod="Insert" 
        OldValuesParameterFormatString="original_{0}" SelectMethod="GetData" 
        TypeName="IMAM_APPLICATION.DSContactTableAdapters.contact_infoTableAdapter" 
        UpdateMethod="Update">
        <DeleteParameters>
            <asp:Parameter Name="Original_idcontact_info" Type="Int32" />
        </DeleteParameters>
        <UpdateParameters>

            <asp:Parameter Name="Work_Field" Type="String" />
            <asp:Parameter Name="Occupation" Type="String" />
            <asp:Parameter Name="sub_Occupation" Type="String" />

            <asp:Parameter Name="Original_idcontact_info" Type="Int32" />
        </UpdateParameters>
        <InsertParameters>
            <asp:Parameter Name="Work_Field" Type="String" />
            <asp:Parameter Name="Occupation" Type="String" />
            <asp:Parameter Name="sub_Occupation" Type="String" />
        </InsertParameters>
    </asp:ObjectDataSource>

  <asp:DropDownList ID="cmbWorkField" runat="server" Style="top: 715px; left: 180px;
                    position: absolute; height: 22px; width: 126px">


                </asp:DropDownList>

                <asp:DropDownList runat="server" ID="cmbOccupation" Style="top: 745px; left: 180px;
                    position: absolute; height: 22px; width: 77px">

                </asp:DropDownList>
                <asp:DropDownList ID="cmbSubOccup" runat="server" 
                    style="position:absolute; top: 775px; left: 180px;">

                </asp:DropDownList>

                <cc1:CascadingDropDown ID="cmbWorkField_CascadingDropDown" runat="server" 
                    TargetControlID="cmbWorkField" 
                    Category="WorkField"  
                    LoadingText="Please Wait ..." 
                    PromptText="Select Wor kField ..." 
                    ServiceMethod="GetWorkField" 
                    ServicePath="ServiceTags.asmx">
                </cc1:CascadingDropDown>

                <cc1:CascadingDropDown ID="cmbOccupation_CascadingDropDown" runat="server" 

                    TargetControlID="cmbOccupation"
                     Category="Occup" 
                    LoadingText="Please wait..." 
                    PromptText="Select Occup ..." 
                    ServiceMethod="GetOccup" 
                    ServicePath="ServiceTags.asmx" 
                    ParentControlID="cmbWorkField">
                </cc1:CascadingDropDown>
                <cc1:CascadingDropDown ID="cmbSubOccup_CascadingDropDown" runat="server" 
                    Category="SubOccup" 
                    Enabled="True"
                     LoadingText="Please Wait..." 
                    ParentControlID="cmbOccupation" 
                    PromptText="Select Sub Occup" 
                    ServiceMethod="GetSubOccup" 
                    ServicePath="ServiceTags.asmx" 
                    TargetControlID="cmbSubOccup">
                </cc1:CascadingDropDown>


</asp:Content>
......................................................
C#  code behind
......................................................

   protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {
             string strg = GridView1.SelectedDataKey["idcontact_info"].ToString();
            int index = Convert.ToInt32(GridView1.SelectedDataKey["idcontact_info"].ToString());
            //txtSearch.Text = GridView1.SelectedIndex.ToString();
           // txtSearch.Text = GridView1.SelectedDataKey["idcontact_info"].ToString();

            DSContactTableAdapters.contact_infoTableAdapter GetByIDAdapter = new DSContactTableAdapters.contact_infoTableAdapter();


            DSContact.contact_infoDataTable ByID = GetByIDAdapter.GetDataByID(index);
            //DSSearch.contact_infoDataTable FirstName = FirstNameAdapter.GetDataByFirstNameList(prefixText);
            foreach (DataRow dr in ByID.Rows)
            {
                lbl.Text = dr["Work_Field"].ToString() + "....." + dr["Occupation"].ToString() + "....." + dr["sub_Occupation"].ToString();


            cmbWorkField_CascadingDropDown.SelectedValue = dr["Work_Field"].ToString();
            cmbOccupation_CascadingDropDown.SelectedValue = dr["Occupation"].ToString();
            cmbSubOccup_CascadingDropDown.SelectedValue = dr["sub_Occupation"].ToString();


            }
        }
.......................................................
web Service 
.......................................................
 [WebMethod]
        public CascadingDropDownNameValue[] GetWorkField(string knownCategoryValues, string category)
    {

        //dsCarsTableAdapters.CarsTableAdapter makeAdapter = new dsCarsTableAdapters.CarsTableAdapter();
        //dsCars.CarsDataTable makes = makeAdapter.GetAllCars();
        DSContactTableAdapters.tag_work_fieldTableAdapter GetWorkFieldAdapter = new DSContactTableAdapters.tag_work_fieldTableAdapter();
        DSContact.tag_work_fieldDataTable WorkFields = GetWorkFieldAdapter.GetDataByGetWorkField();
        List<CascadingDropDownNameValue> values = new List<CascadingDropDownNameValue>();
        foreach (DataRow dr in WorkFields)
        {
            string Work_Field = (string)dr["work_Field_name"];
            int idtag_work_field = (int)dr["idtag_work_field"];
            values.Add(new CascadingDropDownNameValue(Work_Field, idtag_work_field.ToString()));
        }
        return values.ToArray();
    }

    [WebMethod]
    public CascadingDropDownNameValue[] GetOccup(string knownCategoryValues, string category)
    {
        StringDictionary kv = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
        int idtag_work_field;
        if (!kv.ContainsKey("WorkField") || !Int32.TryParse(kv["WorkField"], out idtag_work_field))
        {
            return null;
        }
        //dsCarModelsTableAdapters.CarModelsTableAdapter modelAdapter = new dsCarModelsTableAdapters.CarModelsTableAdapter();
        //dsCarModels.CarModelsDataTable models = modelAdapter.GetModelsByCarId(makeId);
        DSContactTableAdapters.tag_OccupTableAdapter GetOccupAdapter = new DSContactTableAdapters.tag_OccupTableAdapter();
        DSContact.tag_OccupDataTable Occups = GetOccupAdapter.GetByOccup_ID(idtag_work_field);
        //           
        List<CascadingDropDownNameValue> values = new List<CascadingDropDownNameValue>();
        foreach (DataRow dr in Occups)
        {
            values.Add(new CascadingDropDownNameValue((string)dr["Occup_Name"], dr["idtag_Occup"].ToString()));
        }
        return values.ToArray();
    }

    [WebMethod]
    public CascadingDropDownNameValue[] GetSubOccup(string knownCategoryValues, string category)
    {
        StringDictionary kv = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
        int idtag_Occup;
        if (!kv.ContainsKey("Occup") || !Int32.TryParse(kv["Occup"], out idtag_Occup))
        {
            return null;
        }

        //dsModelColorsTableAdapters.ModelColorsTableAdapter adapter = new dsModelColorsTableAdapters.ModelColorsTableAdapter();
        //dsModelColors.ModelColorsDataTable colors = adapter.GetColorsByModelId(colorId);

        DSContactTableAdapters.tag_Sub_OccupTableAdapter GetSubOccupAdapter = new DSContactTableAdapters.tag_Sub_OccupTableAdapter();
        DSContact.tag_Sub_OccupDataTable SubOccups = GetSubOccupAdapter.GetDataBy_Sub_Occup_ID(idtag_Occup);
        List<CascadingDropDownNameValue> values = new List<CascadingDropDownNameValue>();
        foreach (DataRow dr in SubOccups)
        {
            values.Add(new CascadingDropDownNameValue((string)dr["Sub_Occup_Name"], dr["idtag_Sub_Occup"].ToString()));
        }
        return values.ToArray();
    }

アップデート:

my master page
...................................
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Master.master.cs" Inherits="IMAM_APPLICATION.Master" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>

</head>
<body>
    <form id="form1" runat="server">
    <div>
        <%--<asp:ScriptManager ID="ScriptManager1" runat="server" />--%>
        <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
        </asp:ToolkitScriptManager>


    </div>
     <div>

        <table class="style1" frame="vSides">
            <tr>
                <td class="style17" bgcolor="#FFFF99">
                </td>
                <td class="style18" style="">
                    <img alt="" src="Images/banner1.gif" 
                        style="width: 950px; height: 89px; margin-bottom: 0px;" /></td>
                <td class="style17" bgcolor="#FFFF99">
                </td>
            </tr>
            <tr>
                <td class="style15">
                </td>
                <td class="style16" bgcolor="#FFFF99">
                    <asp:Menu ID="Menu1" runat="server" Width="44px" Orientation="Horizontal" 
                        DataSourceID="SiteMapDataSource1" BackColor="#FFFBD6" 
                        DynamicHorizontalOffset="2" Font-Names="Verdana" Font-Size="0.8em" 
                        ForeColor="#990000" StaticDisplayLevels="2" StaticSubMenuIndent="10px">
                        <StaticMenuStyle BorderStyle="Dotted" />
                        <StaticSelectedStyle BackColor="#FFCC66" />
                        <StaticMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px" />
                        <DynamicHoverStyle BackColor="#990000" ForeColor="White" />
                        <DynamicMenuStyle BackColor="#FFFBD6" />
                        <DynamicItemTemplate>
                            <%# Eval("Text") %>
                        </DynamicItemTemplate>
                        <DynamicSelectedStyle BackColor="#FFCC66" />
                        <DynamicMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px" />
                        <StaticHoverStyle BackColor="#990000" ForeColor="White" />
                        <StaticItemTemplate>
                        <%# Eval("Text") %>
                        </StaticItemTemplate>
                    </asp:Menu>

                </td>
                <td class="style15">
                </td>
            </tr>
            <tr>
                <td class="style19" bgcolor="#FFFF99">
                </td>
                <td class="style20">
                    <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">



                    </asp:ContentPlaceHolder>

                </td>
                <td class="style19" bgcolor="#FFFF99">
                </td>
            </tr>
            <tr>
                <td class="style7">
                </td>
                <td class="style8" style="" bgcolor="#FFFF99">


                    Copyright&nbsp; Imam Mahdi Association of Marjeya</td>
                <td class="style7">
                </td>
            </tr>
        </table>

    </div>
     <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />

    </form>
</body>
</html>
4

4 に答える 4

4

単純; コントロールではなく、コントロールのSelectedValueプロパティを設定します。それは私のために働いています。CascadingDropDownDropDown

例えば。CascadingDropDown1.SelectedValue = "KY"

于 2011-11-15T18:02:04.010 に答える
1
CascadingDropDown box2 = (CascadingDropDown)GridView1.Rows[rowIndex].Cells[2].FindControl("CascadingDropDown1");
CascadingDropDown box3 = (CascadingDropDown)GridView1.Rows[rowIndex].Cells[3].FindControl("CascadingDropDown2");

GridView内のカスケードドロップダウンにこのコードを試してください...

于 2012-03-15T14:07:37.467 に答える
1

私も同じ問題を抱えてる。回避策として、PromptText プロパティを使用してデータベースの値にバインドしました。それが役に立てば幸い!

于 2010-07-28T08:38:18.120 に答える
0

データをラベルにバインドする代替ソリューションを探すと思います。値を更新したい場合は CascadingDropDown を使用します。

于 2010-05-18T15:55:38.630 に答える