Я сделал GridView автогенерацию выделения и пользователь выделяет нужную запись в GV и мне необходимо запихать значения столбцов по text-ам.
Как ?
Здравствуйте, Сим, Вы писали:
Сим>Здравствуйте, spike, Вы писали:
S>>Я сделал GridView автогенерацию выделения и пользователь выделяет нужную запись в GV и мне необходимо запихать значения столбцов по text-ам.
S>>Как ?
Сим>2. Зная rowindex, пройтись по всем ячейкам строки и вытащить текст с помощью свойства text ячейки
больше нравиться второй.
GV.Rows[GV.SelectedIndex].Cells[0].Text
так ?
Здравствуйте, spike, Вы писали:
S>Здравствуйте, Сим, Вы писали:
Сим>>Здравствуйте, spike, Вы писали:
S>>>Я сделал GridView автогенерацию выделения и пользователь выделяет нужную запись в GV и мне необходимо запихать значения столбцов по text-ам.
S>>>Как ?
Сим>>2. Зная rowindex, пройтись по всем ячейкам строки и вытащить текст с помощью свойства text ячейки
S>больше нравиться второй.
S>GV.Rows[GV.SelectedIndex].Cells[0].Text
S>так ?
Да, примерно так. Второй способ быстрее и проще, но не всегда его можно использовать. К приеру, значения в ячейках в процессе связывания могут поменяться
S>>больше нравиться второй.
S>>GV.Rows[GV.SelectedIndex].Cells[0].Text
Сим>Да, примерно так. Второй способ быстрее и проще, но не всегда его можно использовать. К приеру, значения в ячейках в процессе связывания могут поменяться
вот только проблема: Text равен пустоте. правда первые два столбца у меня Visible = false
хотя меняя индекс в на 2 (Cells[2]), значение все равно пустое
S>Я сделал GridView автогенерацию выделения и пользователь выделяет нужную запись в GV и мне необходимо запихать значения столбцов по text-ам.
S>Как ?
судя по всему конечная цель — сделать грид и рядом редактор выделенной строки?
я всю эту мутатень делал так: кидаем грид, кидаем detailsview — биндим их на один и тот же сурс. bindingsource я не нашёл, поэтому в событии грида делаем dvEdit.PageIndex = gvData.SelectedIndex. Датасурсу указываю кэшировать.
В самом DeatailsView делаем редактор.
В общем получается довольно быстро наклепать кучу страничек для банальных редакторов небольших табличек. Для больших таблиц надо уже добавлять фильтрацию.
код:
Option Explicit On
Option Strict On
Partial Class Admin_EditEnvironments
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
dsData.EnableCaching = pbl.CNST_CASH_ENABLED
dsData.CacheDuration = pbl.CNST_CASH_DURATION
btnAddNew.Visible = Editable
lblEditAccessDenied.Visible = Not Editable
End Sub
Protected Sub btnAddNew_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAddNew.Click
dvEdit.ChangeMode(DetailsViewMode.Insert)
End Sub
Protected Sub gvData_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles gvData.SelectedIndexChanged
dvEdit.PageIndex = gvData.SelectedIndex
End Sub
Public ReadOnly Property Editable() As Boolean
Get
Return pbl.CanEditTbl_Environment
End Get
End Property
End Class
страница:
<%@ Page Language="VB" MasterPageFile="~/Admin/Admin.master" AutoEventWireup="false" CodeFile="EditEnvironments.aspx.vb" Inherits="Admin_EditEnvironments" title="Untitled Page" StylesheetTheme="Standard" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:LinkButton ID="btnAddNew" runat="server">New</asp:LinkButton><asp:Label ID="lblEditAccessDenied"
runat="server" ForeColor="Red" Text="You cannot modify this table"></asp:Label><br />
<table style="width: 100%">
<tr>
<td style="vertical-align: top; text-align: left">
<asp:GridView ID="gvData" runat="server" AutoGenerateColumns="False" DataSourceID="dsData"
Width="100%">
<Columns>
<asp:ButtonField CommandName="select" DataTextField="name" HeaderText="Name">
<ItemStyle Width="120px" />
</asp:ButtonField>
<asp:TemplateField HeaderText="Enabled">
<ItemTemplate>
<%# IIf(CInt(Eval("enabled")) <> 0, "Y", "N")%>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</td>
<td style="vertical-align: top; width: 300px; text-align: left">
<asp:DetailsView ID="dvEdit" runat="server" AutoGenerateRows="False" DataKeyNames="id"
DataSourceID="dsData" Width="100%">
<Fields>
<asp:TemplateField HeaderText="SmartEdit" ShowHeader="False">
<EditItemTemplate>
<div class="wuc_editor_field">
<asp:LinkButton ID="lbtnUpdate" runat="server" CommandName="Update">Update</asp:LinkButton>
<asp:LinkButton ID="lbtnSmartDelete" runat="server" CommandName="Delete" OnClientClick='return confirm ("Are you sure?");'>Delete</asp:LinkButton>
<asp:LinkButton ID="lbtnCancelEdit" runat="server" CommandName="Cancel">Cancel</asp:LinkButton>
</div>
</EditItemTemplate>
<InsertItemTemplate>
<div class="wuc_editor_field">
<asp:LinkButton ID="lbtnInsert" runat="server" CommandName="Insert">Insert</asp:LinkButton>
<asp:LinkButton ID="lbtnCancelInsert" runat="server" CommandName="Cancel">Cancel</asp:LinkButton>
</div>
</InsertItemTemplate>
<ItemTemplate>
<%If Me.Editable Then%>
<div class="wuc_editor_field">
<asp:LinkButton ID="lbtnEdit" runat="server" CommandName="Edit">Edit</asp:LinkButton>
<asp:LinkButton ID="lbtnSmartDelete" runat="server" CommandName="Delete" OnClientClick='return confirm ("Are you sure?");'>Delete</asp:LinkButton>
<asp:LinkButton ID="lbtnNew" runat="server" CommandName="New">New</asp:LinkButton>
</div>
<%Else%>
<div class="wuc_editor_field_deny">
<asp:LinkButton ID="lbtnDsbled1" runat="server" Enabled="false">Edit</asp:LinkButton>
<asp:LinkButton ID="lbtnDsbled2" runat="server" Enabled="false">Delete</asp:LinkButton>
<asp:LinkButton ID="lbtnDsbled3" runat="server" Enabled="false">New</asp:LinkButton>
</div>
<%End If%>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="name" HeaderText="Name" />
<asp:BoundField DataField="description" HeaderText="Description" />
<asp:TemplateField HeaderText="Enabled">
<EditItemTemplate>
<asp:CheckBox ID="CheckBox2" runat="server" Checked='<%# Bind("enabled") %>' />
</EditItemTemplate>
<ItemTemplate>
<%# IIf(CInt(Eval("enabled")) <> 0, "Y", "N")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Modified" InsertVisible="False" ShowHeader="False">
<ItemTemplate>
<div class="wuc_modified_field">
<%# String.Format("Modified {0:yyyy-MM-dd HH:mm:ss} by {1}", Eval("last_datetime"), Eval("last_user_name"))%>
</div>
</ItemTemplate>
</asp:TemplateField>
</Fields>
</asp:DetailsView>
</td>
</tr>
</table>
<asp:ObjectDataSource ID="dsData" runat="server" DeleteMethod="Delete" InsertMethod="Insert"
OldValuesParameterFormatString="original_{0}" SelectMethod="GetFullList" TypeName="adapters+adapEnvironment"
UpdateMethod="Update">
<DeleteParameters>
<asp:Parameter Name="original_id" Type="Int32" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="original_id" Type="Int32" />
<asp:Parameter Name="name" Type="String" />
<asp:Parameter Name="description" Type="String" />
<asp:Parameter Name="enabled" Type="Boolean" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="name" Type="String" />
<asp:Parameter Name="description" Type="String" />
<asp:Parameter Name="enabled" Type="Boolean" />
</InsertParameters>
</asp:ObjectDataSource>
</asp:Content>