Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> По клику на записи в таблице (or DataGrid) переход, на новую страницу для редактирования 
:(
    Опции темы
Medved
Дата 11.5.2007, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: нет
Всего: 154



Как реализовать такой механизм.

На странице отображаются данные из таблицы в БД.

Необходимо кликнуть на нужную запись и перейти на новую страницу, в которой будет отображена форма для редактирования этой записи. 

Или говоря по другому мне необходимо реализовать такой же функционал, как здесь http://oneboarddemo.informicus.ru/Login.aspx
Логин: test
Пароль: test


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
tol05
Дата 11.5.2007, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 34
Всего: 170



например так (пример из MSDN)
Код

<asp:gridview id="OrdersGridView" 
        datasourceid="OrdersSqlDataSource" 
        autogeneratecolumns="false"
        runat="server">
                
        <columns>
                
          <asp:boundfield datafield="OrderID" headertext="Order ID"/>
          <asp:boundfield datafield="ProductID" headertext="Product ID"/>

          <asp:hyperlinkfield datatextfield="UnitPrice"
            datatextformatstring="{0:c}"
            datanavigateurlfields="ProductID"
            datanavigateurlformatstring="~\details.aspx?ProductID={0}"          
            headertext="Price"
            target="_blank" />
          
          <asp:boundfield datafield="Quantity" headertext="Quantity"/>
                 
        </columns>
                
      </asp:gridview>

<asp:sqldatasource id="OrdersSqlDataSource"  
        selectcommand="SELECT [OrderID], [ProductID], [UnitPrice], [Quantity] FROM [Order Details]"
        connectionstring="server=localhost;database=northwind;integrated security=SSPI"
        runat="server">
      </asp:sqldatasource>



Думаю, принцип понятен.

http://msdn2.microsoft.com/en-us/library/s...s.gridview.aspx
http://msdn2.microsoft.com/en-us/library/s...rlinkfield.aspx


Это сообщение отредактировал(а) tol05 - 11.5.2007, 13:54


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
Mymik
Дата 11.5.2007, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

Репутация: 50
Всего: 78



Medved, Либо, если так как там это реализовано (по нажатию "поручение") то это делается с помощью CommandeName и CommandArgument
т.е. в GridView ты прописываешь в поле ItemTemplate
Код

<asp:TemplateField HeaderText="Service" SortExpression="ServiceName">
    <ItemTemplate>
        <asp:LinkButton CommandName="OneView" CommandArgument='<%# Eval("ProductID") %>' runat="server" />
    </ItemTemplate>
</asp:TemplateField>

причем CommangArgument это строка, так что туда спокойно можно передавать несколько элементов.
Но при все этом ты должен будешь перехватывать OnRowCommand у GridView. Если его перехватываешь, то у класса GridViewCommandEventArgs есть свойство CommandArgument которое и возвращает строку CommandArgument. Дальше ты ее парсишь и можешь делать все что хочешь с ней... вот так вот.

Немного дольше писать. Но при этом есть возможность фильтровать какие-нибудь данные или действия какие-нибудь сделать до того как послать пользователя на другую страницу. Либо что гораздо лучше (как по мне) Так это поставить PlaceHolder по умолчанию он скрыт. А когда ты перехватываешь это событие, то ты делаешь этот PlaceHolder видимым и туда засовываешь данные что тебе нужно редактировать. Типа пользователь не видит командной строки ну и тебе лучше (ибо все что приходит от пользователя это зло) и пользователю спокойнее -- он не пугается страшных GET запросов.

Это сообщение отредактировал(а) Mymik - 11.5.2007, 14:09


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
dazy
Дата 11.5.2007, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 15.9.2006

Репутация: 4
Всего: 8



Я делал так:
В GidView делаешь TemplatedField, в него ложишь LinkButton. Свойство Text - биндишь на поле которое должно отображаться в линке, свойство CommandArgument - биндишь на ID записи.
В обработчике:
Код

    protected void LinkButton_Click(object sender, EventArgs e) {
        Session["EditingID"] = (sender as LinkButton).CommandArgument;
        Response.Redirect("~/EditRecord.aspx");
    }

На страничке EditRecord.aspx, лежит ObjectDataSource,  ему в качестве входного параметра даешь EditingID из Session, можно сделать через смарттэг, Configure Data Source, там на предпоследнем экране Define Parametrs, заполняешь: Parametr Source - Session, SessionField - EditingID.
Полчается в коде:
Код

        <SelectParameters>
            <asp:SessionParameter Name="ID" SessionField="EditingID" Type="Object" />
        </SelectParameters>

Естественно этот ObjectDataSource должен выдавать в страничку одну запись.

Ну а дальше дело техники, связываешь что-то _там_View с ObjectDataSource, и при загрузке странички переводишь режим редактирования.


PM MAIL   Вверх
Medved
Дата 11.5.2007, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: нет
Всего: 154



Спасибо за вашу помощь.


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0769 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.