This is my code :
<asp:LinqDataSource ID="LinqDataSource2" runat="server"
ContextTypeName="StudentScoreDataContext"
Select="new (studentNo, studentName, teacherNo, topic)"
TableName="Teacher_Student" AutoGenerateWhereClause="true">
<WhereParameters>
<asp:Parameter Name="teacherNo" Type="String" DefaultValue="-1" />
</WhereParameters>
</asp:LinqDataSource>
<ext:Store ID="Store1" runat="server" OnBeforeStoreChanged="Store1_BeforeChange">
<Reader>
<ext:JsonReader ReaderID="teacherNo">
<Fields>
<ext:RecordField Name="teacherNo"></ext:RecordField>
<ext:RecordField Name="teacherName"></ext:RecordField>
<ext:RecordField Name="password"></ext:RecordField>
<ext:RecordField Name="teacherTitle"></ext:RecordField>
<ext:RecordField Name="phone"></ext:RecordField>
<ext:RecordField Name="Email"></ext:RecordField>
<ext:RecordField Name="QQ"></ext:RecordField>
<ext:RecordField Name="grade"></ext:RecordField>
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
<ext:Store ID="Store2" runat="server" DataSourceID="LinqDataSource2" OnRefreshData="Store2_Refresh">
<Reader>
<ext:JsonReader ReaderID="studentNo">
<Fields>
<ext:RecordField Name="studentNo"></ext:RecordField>
<ext:RecordField Name="studentName"></ext:RecordField>
<ext:RecordField Name="topic"></ext:RecordField>
</Fields>
</ext:JsonReader>
</Reader>
<BaseParams>
<ext:Parameter
Name="teacherNo"
Value="#{GridPanel1}.getSelectionModel().hasSelection() ? #{GridPanel1}.getSelectionModel().getSelected().id : -1"
Mode="Raw" />
</BaseParams>
</ext:Store>
<Center MarginsSummary="0 5 0 5">
<ext:Panel ID="Panel2" runat="server" Frame="true" Title="????" Icon="User" >
<Body>
<ext:FitLayout ID="FitLayout1" runat="server">
<ext:GridPanel ID="GridPanel1" runat="server" StoreID="Store1" TrackMouseOver="true">
<ColumnModel ID="ColumnModel" runat="server">
<Columns>
<ext:RowNumbererColumn></ext:RowNumbererColumn>
<ext:Column ColumnID="teacherNo" DataIndex="teacherNo" Header="??">
<Editor>
<ext:TextField ID="TextField1" runat="server"></ext:TextField>
</Editor>
</ext:Column>
<ext:Column DataIndex="teacherName" Header="??">
<Editor>
<ext:TextField ID="TextField2" runat="server"></ext:TextField>
</Editor>
</ext:Column>
<ext:Column DataIndex="teacherTitle" Header="??">
<Editor>
<ext:TextField ID="TextField3" runat="server"></ext:TextField>
</Editor>
</ext:Column>
<ext:Column DataIndex="phone" Header="????">
<Editor>
<ext:TextField ID="TextField4" runat="server"></ext:TextField>
</Editor>
</ext:Column>
<ext:Column DataIndex="Email" Header="????">
<Editor>
<ext:TextField ID="TextField5" runat="server"></ext:TextField>
</Editor>
</ext:Column>
<ext:Column DataIndex="QQ" Header="QQ">
<Editor>
<ext:TextField ID="TextField6" runat="server"></ext:TextField>
</Editor>
</ext:Column>
<ext:Column DataIndex="grade" Header="??">
<Editor>
<ext:ComboBox ID="cbStates" runat="server" />
</Editor>
</ext:Column>
</Columns>
</ColumnModel>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel1" runat="server" SingleSelect="true">
<Listeners>
<RowSelect Handler="if(#{pnlSouth}.isVisible()){#{Store2}.reload();#{GridPanel2}.reload();#{btnSave}.enable();#{btnDelete}.enable();#{Button2}.disable();#{Detail}.disable();}" Buffer="250"/>
<RowDeselect Handler="if (!#{GridPanel1}.hasSelection()) {#{btnDelete}.disable();}" />
</Listeners>
</ext:RowSelectionModel>
</SelectionModel>
<LoadMask ShowMask="true" Msg="???????...."/>
<Buttons>
<ext:Button ID="btnSave" runat="server" Text="????" Icon="Disk" Disabled="true">
<Listeners>
<Click Handler="#{GridPanel1}.save();"/>
</Listeners>
</ext:Button>
<ext:Button ID="btnDelete" runat="server" Text="????" Icon="Delete" AutoPostBack="false" Disabled="true">
<Listeners>
<Click Fn="confirmClick" />
</Listeners>
<AjaxEvents>
<Click OnEvent="DeleteTeacherInfo"></Click>
</AjaxEvents>
</ext:Button>
<ext:Button ID="btnInsert" runat="server" Text="????" Icon="Add">
<Listeners>
<Click Handler="#{GridPanel1}.insertRecord(0, {});#{GridPanel1}.getView().focusRow(0);#{GridPanel1}.startEditing(0, 0);" />
</Listeners>
</ext:Button>
<ext:Button ID="btnRefresh" runat="server" Text="??" Icon="LightningGo">
<Listeners>
<Click Handler="#{Window1}.show();" />
</Listeners>
</ext:Button>
</Buttons>
</ext:GridPanel>
</ext:FitLayout>
</Body>
</ext:Panel>
</Center>
<South Collapsible="true" Split="true" MarginsSummary="0 5 5 5">
<ext:Panel ID="pnlSouth" runat="server" Title="???????" Height="250" Icon="UserGreen">
<Body>
<ext:FitLayout ID="FitLayout2" runat="server">
<ext:GridPanel
ID="GridPanel2"
runat="server"
StoreID="Store2"
Border="false"
TrackMouseOver="true"
SelectionMemory="Auto"
>
<ColumnModel ID="ColumnModel1" runat="server">
<Columns>
<ext:RowNumbererColumn ></ext:RowNumbererColumn>
<ext:Column ColumnID="studentNo" DataIndex="studentNo" Header="????">
</ext:Column>
<ext:Column DataIndex="studentName" Header="????">
</ext:Column>
<ext:Column DataIndex="topic" Header="????" Width="200">
</ext:Column>
</Columns>
</ColumnModel>
<LoadMask ShowMask="true" Msg="???????......" />
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel2" runat="server" SingleSelect="true">
<Listeners>
<RowSelect Handler="#{Button2}.enable();#{Detail}.enable()" />
</Listeners>
</ext:RowSelectionModel>
</SelectionModel>
<BottomBar>
<ext:PagingToolBar ID="PagingToolBar2" runat="server" PageSize="10" StoreID="Store1" />
</BottomBar>
<Buttons>
<ext:Button
ID="Detail"
runat="server"
Text="??????"
Icon="VcardEdit"
Disabled="true">
<Listeners>
<Click Handler="#{DetailAndEditStudentInfo}.show()"/>
</Listeners>
</ext:Button>
<ext:Button ID="Button4" runat="server" Text="????" Icon="Add">
<Listeners>
<Click Handler="#{StudentDetailsWindow}.show()" />
</Listeners>
</ext:Button>
<ext:Button ID="Button6" runat="server" Text="??" Icon="LightningGo">
<Listeners>
<Click Handler="#{Window3}.show();" />
</Listeners>
</ext:Button>
</Buttons>
</ext:GridPanel>
</ext:FitLayout>
</Body>
<Listeners>
<Expand Handler="#{Store2}.reload();" />
</Listeners>
</ext:Panel>
</South>
.CS code
protected void Page_Load(object sender, EventArgs e)
{
if (!Ext.IsAjaxRequest)
{
this.Store1.DataSource = ss.Teacher.ToList();
this.Store1.DataBind();
}
}
protected void Store2_Refresh(object sender, StoreRefreshDataEventArgs e)
{
string id = e.Parameters["teacherNo"];
LinqDataSource2.WhereParameters["teacherNo"].DefaultValue = id ?? "-1";
Store2.DataBind();
}
Waiting answer!!!
Thank you very much!