Отображение значений Gridview вне сетки в событии rowcommand без использования индекса столбца
У меня есть сетка, в которой все столбцы являются ограниченным полем и одно поле шаблона, которое является кнопкой ссылки.
При нажатии на кнопку ссылки мне нужно отобразить значения столбца сетки на панели с текстовыми полями, флажками и т. Д. Я использую Row_Command
событие для этого.
Например: textboxname.text= значение столбца имени сетки
Я хотел бы не использовать rows(0).cells(0)
команда. Вместо указания номера строки или номера я могу сделать это в Row_Command
событие. Пожалуйста помоги!
1 ответ
Я думаю, что вы должны просто связать DetailsView с выбранным индексом GridView. Это выполнит именно то, что вы пытаетесь сделать, без всей дополнительной работы.
Просто обработайте событие SelectedIndexChanged объекта GridView и укажите источник данных вашего DetailsView на идентификатор выбранной вами строки. Или, если вы используете SqlDataSource для DetailsView, вы можете просто использовать ControlParameter, указывающий на GridView.
Общий пример: у вас есть GridView, DetailsView, а DetailsView заполняется SqlDataSource. Затем вы просто настраиваете свой SqlDataSource, чтобы иметь ControlParameter, который связан с selectedValue Gridview:
<asp:GridView ID="yourGridView" runat="server" >
...
</asp:GridView>
<asp:DetailsView ID="yourDetailsview" runat="server" DataSourceID="detailsViewDataSource">
...
</asp:DetailsView>
<asp:SqlDataSource ID="detailsViewDataSource" runat="server" ConnectionString="Your connection string"
SelectCommand="SELECT * FROM yourTable WHERE ID = @ID"
<SelectParameters>
<asp:ControlParameter Name="ID" ControlId="yourGridView" PropertyName="SelectedValue"/>
</SelectParameters>
</asp:SqlDataSource>
Если вы не используете SqlDataSource, вам нужно обработать событие SelectedIndexChanged GridView, а затем связать DetailsView (используя новое SelectedValue вашего GridView) с нужной вам записью, используя любой процесс связывания данных, который вы захотите.