#c# #extjs #code-behind #ext.net
#c# #extjs #код-за #ext.net
Вопрос:
У меня есть следующий код в моем файле .aspx
<ext:GridPanel
runat="server"
ID="GridPanel1"
Height="450"
Title="EmployeeList"
Width = "850"
Header = "false"
StyleSpec = "margin: 25px;"
StripeRows="true"
TrackMouseOver="true"
Border="true" ClicksToEdit="2">
<Store>
<ext:Store ID="Store1" runat="server" DataSourceID="LinqDataSource1">
<Reader>
<ext:JsonReader IDProperty="id" >
<Fields>
<ext:RecordField Name="id" />
<ext:RecordField Name="shortcode" />
<ext:RecordField Name="lastname" />
<ext:RecordField Name="firstname" />
<ext:RecordField Name="roomnumber" />
<ext:RecordField Name="landline" />
<ext:RecordField Name="mobile" />
<ext:RecordField Name="mail" />
<ext:RecordField Name="position" />
<ext:RecordField Name="department" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
</Store>
<ColumnModel ID="ColumnModel1" runat="server" >
<Columns>
<ext:Column DataIndex="id" Header="Index" Width="50"/>
<ext:Column DataIndex="shortcode" Header="Kuerzel" Align="Center" />
<ext:Column DataIndex="lastname" Header="Nachname" />
<ext:Column DataIndex="firstname" Header="Vorname" />
<ext:Column DataIndex="roomnumber" Header="Raumnummer" Align="Center" Width="50"/>
<ext:Column DataIndex="landline" Header="Durchwahl intern" Align="Center" Width="50"/>
<ext:Column DataIndex="mobile" Header="Durchwahl handy" Align="Center" Width="50"/>
<ext:Column DataIndex="mail" Header="Mail" />
<ext:Column DataIndex="position" Header="Funktion" />
<ext:Column DataIndex="department" Header="Abteilung" />
</Columns>
</ColumnModel>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModel1" SingleSelect="true">
<%-- <Listeners>
<RowSelect Handler="#{EditPanel}.getForm().loadRecord(record);" />
</Listeners>--%>
<DirectEvents>
<RowSelect OnEvent="SaveCurrentSelection">
<ExtraParams>
<ext:Parameter Name="usID" Value="this.getSelected().id" Mode="Raw" />
</ExtraParams>
</RowSelect>
</DirectEvents>
</ext:RowSelectionModel>
</SelectionModel>
<KeyMap>
<ext:KeyBinding Ctrl="true">
<Keys>
<ext:Key Code="Y" />
</Keys>
<Listeners>
<Event Handler="#{DirectMethods}.ShowSearchWindow();" />
</Listeners>
</ext:KeyBinding>
</KeyMap>
<DirectEvents>
<RowDblClick OnEvent="SwitchToUserDetail">
<ExtraParams>
<ext:Parameter Name="id" Value="this.selModel.getSelected().id" Mode="Raw"></ext:Parameter>
</ExtraParams>
</RowDblClick>
</DirectEvents>
</ext:GridPanel>
Теперь мне нужно получить поле идентификатора выбранной в данный момент строки, как я получаю его в моем прослушивателе выбора строк
<ext:Parameter Name="usID" Value="this.getSelected().id" Mode="Raw" />
Но на этот раз не в selectionModel. Мне нужно получить это здесь:
<DirectEvents>
<RowDblClick OnEvent="SwitchToUserDetail">
<ExtraParams>
<ext:Parameter Name="id" Value="this.selModel.getSelected().id" Mode="Raw"></ext:Parameter>
</ExtraParams>
</RowDblClick>
</DirectEvents>
Вне selectionModel, но внутри GridPanel.
Я думаю, что способ получить это здесь:
Value = "this.selModel.getSelected().id"
Мне нужно получить это здесь, поскольку я не хочу делать это внутри CodeBehind, и поскольку прослушиватель и DirectEvent не работают вместе в моей selectionModel
Ответ будет оценен по достоинству
Комментарии:
1. Вы можете получить доступ к полю записи следующим образом this.selModel.getSelected().data.shortcode .
2. ты сделал мой день! Это работает 🙂 Я был ооочень расстроен, но теперь это работает!! ОТЛИЧНО
Ответ №1:
Вы можете получить доступ к полю записи следующим образом
this.selModel.getSelected().data.shortcode
Ответ №2:
К сожалению, это не сработало для меня:
App.GridPanel1.getSelectionModel().getSelected() .data.Id
Но это:
App.GridPanel1.getSelectionModel().getSelected().items[0].data.Id
Ответ №3:
Это изменилось в более поздних версиях Ext.NET . Чтобы получить свойство idProperty строки, обратите внимание, что «getSelected()» теперь является «getSelection ()», и функция возвращает массив выбранных объектов:
<SelectionModel>
<ext:RowSelectionModel runat="server">
<Listeners>
<Select Handler="#{GridPanel1}.selModel.getSelection()[0].internalId" />
</Listeners>
</ext:RowSelectionModel>
</SelectionModel>