인사말, CascadingDropDown의 선택한 값 적절성을 사용하는 데 문제가 있습니다.C# ASP.NET AJAX CascadingDropDown 선택한 값 속성 문제
나는 그 (것)들 각각을 위해 ajax CascadingDropDown를 가진 3 ASP 드롭 다운 컨트롤을 가지고있다.
데이터를 3 CascadingDropDown에 바인딩해도 문제가 없지만 제 문제는 CascadingDropDown을 다시 바인딩하는 것입니다.
내가 원하는 것은 GridView에서 선택된 값을 가진 CascadingDropDown을 전달하기 위해 선택된 값을 가진 레코드를 선택하는 것입니다.
아래 코드를 게시하고 있습니다.
1ASP.NET 코드.
2 코드는 그리드보기에서 선택한 레코드를 처리합니다.
3 데이터를 3 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();
}
UPDATE :
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 Imam Mahdi Association of Marjeya</td>
<td class="style7">
</td>
</tr>
</table>
</div>
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
</form>
</body>
</html>
당신이 마스터 페이지 및 WebForm1이 페이지의 당신의 master.master 페이지 코드를 Page_Load 이벤트를 게시 할 수 있습니까? – IsmailS
@Ismail 마스터 페이지 코드와 Page_Load 이벤트를 둘 다 게시했는데 내부에 아무것도 없습니다. 감사합니다. – Eyla
페이지를 다시 방문했을 때 드롭 다운 컨트롤이 떠났을 때 탐색 문제로 설정되어 있지 않고 그리드보기에 올바른 값이 없으면 탐색 문제입니까? – ICodeForCoffee