May 02, 2012, 9:25 AM
[CLOSED] ComboBox in user control binding but not showing data
Hi, All
We created an user control for reusing it in many other pages. Here is the code
I attached a one of the pages that are using this user control :
Please find the code for the direct Method :
//This method fill two comboboxes located in the user control
We created an user control for reusing it in many other pages. Here is the code
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SelectYearSemesterCourse.ascx.cs"
Inherits="FactoBATSchools.Modules.SelectYearSemesterCourse" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<ext:Panel ID="Panel1" runat="server" AutoHeight="true">
<Content>
<ext:Store ID="StoreClass" runat="server" OnRefreshData="StoreRefresh">
<Model>
<ext:Model ID="Model4" runat="server" IDProperty="Class_ID">
<Fields>
<ext:ModelField Name="Class_ID" />
<ext:ModelField Name="Class_Short" />
<ext:ModelField Name="Class_Short_En" />
</Fields>
</ext:Model>
</Model>
</ext:Store>
<ext:Store ID="StoreGrade_SubjectUC" runat="server" OnRefreshData="StoreRefresh">
<Model>
<ext:Model ID="Model5" runat="server" IDProperty="Grade_Subject_ID">
<Fields>
<ext:ModelField Name="Grade_Subject_ID" />
<ext:ModelField Name="Class_ID" />
<ext:ModelField Name="Subject_ID" />
</Fields>
</ext:Model>
</Model>
</ext:Store>
<ext:Store ID="StoreSubjects" runat="server" OnRefreshData="StoreRefresh">
<Model>
<ext:Model ID="Model7" runat="server" IDProperty="Subject_ID">
<Fields>
<ext:ModelField Name="Subject_ID" />
<ext:ModelField Name="Subject_NameS" />
<ext:ModelField Name="Subject_Name" />
<ext:ModelField Name="Subject_Name_En" />
</Fields>
</ext:Model>
</Model>
</ext:Store>
</Content>
<TopBar>
<ext:Toolbar runat="server">
<Items>
<ext:ComboBox runat="server" ID="cbxYear" DisplayField="Year_Name" ValueField="Year_ID"
DataIndex="Year_ID" LabelWidth="50" FieldLabel="<%$ Resources:FactoBATMres, Year_ID %>"
Width="160" AllowBlank="false" Mode="Local" ForceSelection="false" Editable="false"
TriggerAction="All" EmptyText="Select Year...">
<DirectEvents>
<AfterRender OnEvent="InitialSelect" />
<Select OnEvent="FilterFromYear">
<%--<ExtraParams>
<ext:Parameter Mode="Value" Name="ComboName" Value="Year" />
</ExtraParams>--%>
</Select>
</DirectEvents>
<Store>
<ext:Store ID="StoreYearsUC" runat="server">
<Model>
<ext:Model ID="Model1" runat="server" IDProperty="Year_ID">
<Fields>
<ext:ModelField Name="Year_ID" />
<ext:ModelField Name="Year_Name" />
<ext:ModelField Name="Active" />
<ext:ModelField Name="NextActive" />
<ext:ModelField Name="PrevActive" />
<ext:ModelField Name="Terms_QTY" />
<ext:ModelField Name="DateFrom" />
<ext:ModelField Name="DateTo" />
<ext:ModelField Name="Terms_QTY2" />
</Fields>
</ext:Model>
</Model>
</ext:Store>
</Store>
</ext:ComboBox>
<ext:ToolbarSpacer Width="20" />
<ext:ComboBox runat="server" ID="cbxProgram" DisplayField="Program_Title" ValueField="Program_ID"
LabelWidth="70" FieldLabel="<%$ Resources:FactoBATMres, Program %>" AutoWidth="true"
DataIndex="Program_ID" Mode="Remote" ForceSelection="false" Editable="false"
TriggerAction="All" EmptyText="Select Program..." Width="180">
<Listeners>
<Select Handler="TiersAjax.FilterFromProgram();" />
</Listeners>
<Store>
<ext:Store ID="StoreProgramUC" runat="server" AutoLoad="true" OnRefreshData="StoreRefresh">
<Model>
<ext:Model ID="Model2" runat="server" IDProperty="Program_ID">
<Fields>
<ext:ModelField Name="Program_ID" />
<ext:ModelField Name="Program_Title" />
<ext:ModelField Name="Program_Active" />
</Fields>
</ext:Model>
</Model>
</ext:Store>
</Store>
</ext:ComboBox>
<ext:ToolbarSpacer Width="35" />
<ext:ComboBox runat="server" ID="cbxTerm" DisplayField="Term" ValueField="Term_ID"
LabelWidth="60" FieldLabel="<%$ Resources:FactoBATMres, Term %>" AutoWidth="true"
EmptyText="Select Term..." ValueNotFoundText="<%$ Resources:FactoBATMres, cor_msgSelectCourse %>"
Editable="false" AllowBlank="false">
<Listeners>
<Select Handler="TiersAjax.FilterFromTerm();" />
</Listeners>
<Store>
<ext:Store ID="StoreTermUC" runat="server" OnRefreshData="StoreRefresh">
<Model>
<ext:Model ID="Model3" runat="server" IDProperty="Term_ID">
<Fields>
<ext:ModelField Name="Term_ID" />
<ext:ModelField Name="Term_Ar" />
<ext:ModelField Name="Term_En" />
<ext:ModelField Name="Term" />
</Fields>
</ext:Model>
</Model>
</ext:Store>
</Store>
</ext:ComboBox>
</Items>
</ext:Toolbar>
</TopBar>
</ext:Panel>
<ext:Panel ID="Panel3" runat="server" Border="false" Header="false">
<TopBar>
<ext:Toolbar ID="Toolbar1" runat="server" Height="60">
<Items>
<ext:ComboBox runat="server" ID="cbxClass" DisplayField="Class_Name" ValueField="Class_ID"
LabelWidth="50" FieldLabel="<%$ Resources:FactoBATMres, Grade %>" AutoWidth="true"
EmptyText="Select Class..." ValueNotFoundText="Grade not found..." Editable="false"
ItemSelector="div" AllowBlank="false" Width="160">
<Listeners>
<Select Handler="TiersAjax.FilterFromClass();" />
</Listeners>
<Store>
<ext:Store ID="StoreClassUC" runat="server" OnRefreshData="StoreRefresh">
<Model>
<ext:Model ID="Model6" runat="server" IDProperty="Class_ID">
<Fields>
<ext:ModelField Name="Class_ID" />
<ext:ModelField Name="Class_Name" />
<ext:ModelField Name="Class_Name_En" />
</Fields>
</ext:Model>
</Model>
</ext:Store>
</Store>
<Items>
<ext:ListItem Text="---" Value="0" />
</Items>
</ext:ComboBox>
<ext:ToolbarSpacer Width="20" runat="server" ID="toolbarSpacerBefTeacher" />
<ext:ComboBox runat="server" ID="cbxTeacher" TypeAhead="true" DisplayField="Teacher_Name"
ValueField="Teacher_ID" LabelWidth="70" FieldLabel="<%$ Resources:FactoBATMres, Teachers %>"
Width="340" EmptyText="Select Teacher..." ValueNotFoundText="Teacher not found..."
Mode="Local" ForceSelection="true" SelectOnFocus="true" Editable="true" Hidden="true"
TriggerAction="All">
<Listeners>
<Select Handler="TiersAjax.FilterFromTeacher();" />
</Listeners>
<Store>
<ext:Store ID="StoreTeacherSectionUC" runat="server" OnRefreshData="StoreRefresh">
<Model>
<ext:Model ID="Model9" runat="server" IDProperty="Teacher_Section_ID">
<Fields>
<ext:ModelField Name="Teacher_Section_ID" />
<ext:ModelField Name="Teacher_ID" />
<ext:ModelField Name="Section_ID" />
<ext:ModelField Name="Teacher_Name" />
<ext:ModelField Name="Grade_Subject_ID" />
</Fields>
</ext:Model>
</Model>
<Sorters>
<ext:DataSorter Direction="ASC" Property="Teacher_Name" />
</Sorters>
</ext:Store>
</Store>
</ext:ComboBox>
<ext:ToolbarSpacer Width="40" />
<ext:ComboBox runat="server" ID="cbxSubjects" TypeAhead="true" DisplayField="Subject_Name"
ValueField="Subject_ID" LabelWidth="70" FieldLabel="COMBOSUBJECTS" Width="340"
EmptyText="Select Subject..." ValueNotFoundText="Subject not found..." ForceSelection="true"
SelectOnFocus="true" Editable="true" TriggerAction="All" QueryMode="Remote">
<Listeners>
<Select Handler="TiersAjax.FilterFromSubject();" />
</Listeners>
<Store>
<ext:Store ID="StoreSubjectUC" runat="server">
<Model>
<ext:Model runat="server" IDProperty="Subject_ID">
<Fields>
<ext:ModelField Name="Subject_ID" />
<ext:ModelField Name="Subject_Name" />
</Fields>
</ext:Model>
</Model>
</ext:Store>
</Store>
</ext:ComboBox>
</Items>
</ext:Toolbar>
</TopBar>
</ext:Panel>
When selecting from the combobox 'cbxClass' and the event listener DirectMethod "TiersAjax.FilterFromClass();", the binding is working fine but the comboboxes are not showing the data.I attached a one of the pages that are using this user control :
<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/Admin/Grades/Grades.Master"
CodeBehind="Grades_Tch_Com_Subj.aspx.cs" Inherits="FactoBATSchools.Admin.Grades.Grades_Teach_Comm_Subj" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<%@ Register Src="~/Admin/SelectYearSemesterCourse.ascx" TagName="SelectCombos" TagPrefix="uc1" %>
<%@ Register Src="~/Admin/RecordMgnt.ascx" TagName="RecordMgnt" TagPrefix="uc1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<uc1:RecordMgnt ID="RecordMgnt1" runat="server" />
<style type="text/css">
.iconPDF
{
background-image: url("../../Images/PDF2.png") !important;
}
</style>
<ext:XScript ID="XScript1" runat="server">
<script type="text/javascript">
var functionItemClick = function (itemClicked, event) {
TiersAjax.PrintMarks_Entry(itemClicked.itemId);
};
var renderAbsLetter = function (valueTerm, absLetter) {
if (valueTerm == null)
return absLetter
else
return valueTerm
};
</script>
</ext:XScript>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<ext:Viewport ID="Viewport1" runat="server" Layout="Fit">
<Items>
<ext:Panel ID="Window1"
runat="server"
Icon="User"
Title="Customer Details"
Layout="Form"
DefaultAnchor="100%">
<Items>
<ext:Panel runat="server" Height="90">
<Content>
<uc1:SelectCombos ID="SelectCombos1" runat="server" />
</Content>
</ext:Panel>
<ext:GridPanel ID="GridPanelTeacherComment" runat="server" Frame="true" Title="Marks Entry"
Region="Center" AutoScroll="true" Hidden="false" HeaderPosition="None" Height="150" Layout="FitLayout">
<Store>
<ext:Store ID="StoreTeacherComments" runat="server">
<Model>
<ext:Model ID="ModelTeachComm" runat="server" IDProperty="Student_ID">
<Fields>
<ext:ModelField Name="Student_ID" />
<ext:ModelField Name="Student_Name_En" />
<ext:ModelField Name="Student_Name_Ar" />
<ext:ModelField Name="Student_Name" />
<ext:ModelField Name="Term_1" />
<ext:ModelField Name="TC_1" />
<ext:ModelField Name="Term_1_Abs_Letter" />
<ext:ModelField Name="Term_2" />
<ext:ModelField Name="TC_2" />
<ext:ModelField Name="Term_2_Abs_Letter" />
<ext:ModelField Name="Term_4" />
<ext:ModelField Name="TC_3" />
<ext:ModelField Name="Term_3_Abs_Letter" />
<ext:ModelField Name="Term_5" />
<ext:ModelField Name="TC_4" />
<ext:ModelField Name="Term_4_Abs_Letter" />
</Fields>
</ext:Model>
</Model>
</ext:Store>
</Store>
<TopBar>
<ext:Toolbar ID="Toolbar1" runat="server" Height="85">
<Items>
<ext:ToolbarSpacer Width="15" />
<ext:ComboBox runat="server" ID="cbxStudents" DisplayField="Student_Name" ValueField="Student_ID"
LabelWidth="70" FieldLabel="Students" Width="330" EmptyText="Select Student..."
ValueNotFoundText="Subject not found..." Editable="false" AllowBlank="false">
<Store>
<ext:Store ID="StoreStudents" runat="server">
<Model>
<ext:Model ID="ModelStudents" runat="server" IDProperty="Student_ID">
<Fields>
<ext:ModelField Name="Student_ID" />
<ext:ModelField Name="Student_Name_En" />
<ext:ModelField Name="Student_Name_Ar" />
<ext:ModelField Name="Student_Name" />
</Fields>
</ext:Model>
</Model>
</ext:Store>
</Store>
</ext:ComboBox>
<ext:ToolbarSpacer Width="30" />
<ext:ToolbarFill ID="ToolbarFill1" runat="server" />
<ext:Button ID="BtnRefresh" runat="server" Text="<%$ Resources:FactoBATMres, MenuRefresh %>"
Icon="Reload">
<Listeners>
<Click Handler="TiersAjax.FilterFromSubject();" />
</Listeners>
</ext:Button>
</Items>
</ext:Toolbar>
</TopBar>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel2" runat="server">
</ext:RowSelectionModel>
</SelectionModel>
<ColumnModel runat="server">
<Columns>
<ext:RowNumbererColumn runat="server" />
<ext:Column runat="server" ID="Student_ID" Text="<%$ Resources:FactoBATMres, Ass_Student_ID %>"
Width="90" DataIndex="Student_ID" Sortable="true">
</ext:Column>
<ext:Column runat="server" ID="Student_Name_En" Text="<%$ Resources:FactoBATMres, St_Student_Name_En %>"
Width="250" DataIndex="Student_Name_En" Sortable="true">
</ext:Column>
<ext:Column runat="server" ID="Student_Name_Ar" Text="<%$ Resources:FactoBATMres, St_Student_Name_Ar %>"
Width="250" DataIndex="Student_Name_Ar" Sortable="true" Align="Right">
</ext:Column>
<ext:Column runat="server" ID="Term_1" Text="Grade T1" Width="45" Align="Center" DataIndex="Term_1">
<Renderer Handler="return renderAbsLetter(record.data.Term_1, record.data.Term_1_Abs_Letter)" />
</ext:Column>
<ext:Column runat="server" ID="TC_1" Text="Term 1" Width="40" Align="Center" DataIndex="TC_1"
Sortable="true">
<Editor>
<ext:TextField ID="txfTC_1" runat="server" AllowBlank="false">
</ext:TextField>
</Editor>
</ext:Column>
<ext:Column runat="server" ID="Term_2" Text="Grade T2" Width="45" Align="Center" DataIndex="Term_2">
<Renderer Handler="return renderAbsLetter(record.data.Term_2, record.data.Term_2_Abs_Letter)" />
</ext:Column>
<ext:Column runat="server" ID="TC_2" Text="Term 2" Width="40" Align="Center" DataIndex="TC_2"
Sortable="true">
<Editor>
<ext:TextField ID="txfTC_2" runat="server" AllowBlank="false">
</ext:TextField>
</Editor>
</ext:Column>
<ext:Column runat="server" ID="Term_3" Text="Grade T3" Width="45" Align="Center" DataIndex="Term_4">
<Renderer Handler="return renderAbsLetter(record.data.Term_4, record.data.Term_4_Abs_Letter)" />
</ext:Column>
<ext:Column runat="server" ID="TC_3" Text="Term 3" Width="40" Align="Center" DataIndex="TC_3"
Sortable="true">
<Editor>
<ext:TextField ID="txfTC_3" runat="server" AllowBlank="false">
</ext:TextField>
</Editor>
</ext:Column>
<ext:Column runat="server" ID="Term_4" Text="Grade T4" Width="45" Align="Center" DataIndex="Term_5">
<Renderer Handler="return renderAbsLetter(record.data.Term_5, record.data.Term_5_Abs_Letter)" />
</ext:Column>
<ext:Column runat="server" ID="TC_4" Text="Term 4" Width="40" Align="Center" DataIndex="TC_4"
Sortable="true">
<Editor>
<ext:TextField ID="txfTC_4" runat="server" AllowBlank="false">
</ext:TextField>
</Editor>
</ext:Column>
</Columns>
</ColumnModel>
<View>
<ext:GridView ID="GridView1" runat="server">
</ext:GridView>
</View>
</ext:GridPanel>
</Items>
</ext:Panel>
</Items>
</ext:Viewport>
</asp:Content>
Please find the code for the direct Method :
//This method fill two comboboxes located in the user control
[DirectMethod]
public void FilterFromClass()
{
SelectedComboboxValues();
if (roleType.ToLower() == "isadmin" || roleType.ToLower() == "issupervisor")
{
this.SelectCombos1.ComboBoxTeacher.ClearValue();
//Filling Class cbx for teachers
var eGradeTeachersSec = Teachers_Entity.GetGradeTeachersSecByProgByYear(programID, yearID, dataContext);
if (classID != 0)
eGradeTeachersSec = Teachers_Entity.GetGradeTeachersSecByProgByYear(programID, yearID, classID, dataContext);
if (eGradeTeachersSec != null)
{
this.SelectCombos1.ComboBoxTeacher.GetStore().DataSource = eGradeTeachersSec;
this.SelectCombos1.ComboBoxTeacher.GetStore().DataBind();
}
else
{
this.SelectCombos1.ComboBoxTeacher.GetStore().DataBind();
}
//Filling for All Subject in Classes - Section selected
List<Entities.SubjectEntity> eGrades_Subjects = Grades_Entity.GetGradeSectionGradeSubjectBySectionID(programID, yearID, classID, dataContext);
if (eGrades_Subjects != null)
{
this.SelectCombos1.ComboBoxSubject.GetStore().DataSource = eGrades_Subjects.ToList();
this.SelectCombos1.ComboBoxSubject.GetStore().DataBind();
}
else
{
this.SelectCombos1.ComboBoxTeacher.GetStore().DataBind();
this.SelectCombos1.ComboBoxSubject.GetStore().DataBind();
}
this.StoreTeacherComments.DataBind();
}
}
urgent need help.
Last edited by Daniil; May 11, 2012 at 4:31 PM.
Reason: [CLOSED]