Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.65/17: Рейтинг темы: голосов - 17, средняя оценка - 4.65
Глобус
9 / 9 / 4
Регистрация: 12.07.2009
Сообщений: 88
1

Кнопки Edit и Delete для GridView

21.12.2009, 15:11. Просмотров 3106. Ответов 4
Метки нет (Все метки)

Ситауция такая. Имею ГридВью grd_rcpt, тут вот я присваиваю ему ДатаСет следующим образом

C#
1
2
3
4
5
6
7
8
9
            
            int lst_id = lst_lists.SelectedIndex;
            if (lst_id >= 0 && (sql_pwd != null))
            {
                string id_list = lst_lists.Items[lst_id].Value;
                ds_rcpt = GetRecipients(id_list);
                grd_rcpt.DataSource = ds_rcpt;
                grd_rcpt.DataBind();
            }
Вот метод GetRecipients, который этот ДатаСет возвращает

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
private DataSet GetRecipients(string id_list)
        {
            conn = new SqlConnection();
            conn.ConnectionString = GetConnStr(
                                        txt_sql_srv.Text,
                                        txt_db.Text,
                                        txt_sql_login.Text,
                                        sql_pwd
                                    );
 
            DataSet result = new DataSet();
            try
            {
                
                SqlDataAdapter rcpt_adapter = new SqlDataAdapter();
                
                SqlCommand select_rcpt = conn.CreateCommand();
                select_rcpt.CommandText =
                    "SELECT lr.id_rcpt, r.name, r.e_mail " +
                    "FROM dbo.lists_recipients as lr, dbo.recipients as r " +
                    "WHERE lr.id_list = " + id_list + " AND r.id = lr.id_rcpt";
                rcpt_adapter.SelectCommand = select_rcpt;
                
                SqlCommand upd_rcpt = conn.CreateCommand();
                upd_rcpt.CommandText = "BLABLABLA";//заглушка
                rcpt_adapter.UpdateCommand = upd_rcpt;
 
                SqlCommand del_rcpt = conn.CreateCommand();
                del_rcpt.CommandText = "BLABLABLA";//заглушка
                rcpt_adapter.UpdateCommand = del_rcpt;
                
                rcpt_adapter.Fill(result);
            }
            catch (Exception ex)
            {
                result = null;
                exec_result = ex.Message;
            }
            return result;
        }
Данные загружаются отлично, а вот ЛинкБаттоны в столбцах не работают, отображаетья просто текстом "edit" и "delete"

Вот сам ГридВью

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<asp:GridView ID="grd_rcpt" runat="server" AutoGenerateColumns="False" 
    Enabled="False" onrowcommand="grd_rcpt_RowCommand" 
    onrowediting="grd_rcpt_RowEditing" ShowFooter="True">
    <Columns>
            <asp:TemplateField HeaderText="имя" SortExpression="name">
                    <EditItemTemplate>
                            <asp:TextBox ID="txt_name" runat="server" Text='<%# Bind("name") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <FooterTemplate>
                            <asp:TextBox ID="txt_new_name" runat="server"></asp:TextBox>
                    </FooterTemplate>
                    <ItemTemplate>
                            <asp:Label ID="Label1" runat="server" Text='<%# Bind("name") %>'></asp:Label>
                    </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="e-mail" SortExpression="e_mail">
                    <EditItemTemplate>
                            <asp:TextBox ID="txt_email" runat="server" Text='<%# Bind("e_mail") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <FooterTemplate>
                            <asp:TextBox ID="txt_new_email" runat="server"></asp:TextBox>
                    </FooterTemplate>
                    <ItemTemplate>
                            <asp:Label ID="Label2" runat="server" Text='<%# Bind("e_mail") %>'></asp:Label>
                    </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField ShowHeader="False">
                    <EditItemTemplate>
                            <asp:LinkButton ID="lnk_upd_rcpt" runat="server" CausesValidation="True" 
                                    CommandName="Update" Text="Update"></asp:LinkButton>
                            &nbsp;<asp:LinkButton ID="lnk_cncl_rcpt" runat="server" CausesValidation="False" 
                                    CommandName="Cancel" Text="Cancel"></asp:LinkButton>
                    </EditItemTemplate>
                    <FooterTemplate>
                            <asp:LinkButton ID="lnk_add_rcpt" runat="server" CommandName="AddNew">Add</asp:LinkButton>
                    </FooterTemplate>
                    <ItemTemplate>
                            <asp:LinkButton ID="lnk_edt_rcpt" runat="server" CausesValidation="False" 
                                    CommandName="Edit" Text="Edit"></asp:LinkButton>
                    </ItemTemplate>
            </asp:TemplateField>
            <asp:CommandField ShowDeleteButton="True" />
    </Columns>
</asp:GridView>
В чем дело не могу понять, замучился уже.
Делал все по образу и подобию следующей статьи: http://www.aspdotnetcodes.com/GridView_Insert_Edit_Update_Delete.aspx

Может кто подскажет что может быть источником проблемы?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2009, 15:11
Ответы с готовыми решениями:

Динамический GridView с Edit, Delete, Insert
Всем доброго времени суток. Второй день не могу решить такую проблему: Есть база данных на MS...

Обработчик для кнопки в GridView
Здравствуйте! У меня имеется GridView, в котором отображается информация из БД. Я сделал поле, в...

Программно включить select, update, delete в GridView
Подскажите пожалуйста как программно включить select, update, delete. Данные я через код забиваю в...

Заполнение GridView по нажатию кнопки
Кстати, а подскажите салаге зелёнейшему: чтоб в эту таблицу вводить данные через кнопку, что...

Как запихнуть в GridView теги и кнопки?
Как запихнуть в GridView теги например &lt;a href=blabla.mp3&gt;blalbla&lt;/a&gt; и кнопки? Может кто...

4
MAcK
Комбайнёр
1578 / 676 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
21.12.2009, 15:56 2
А что именно не получается?
0
Глобус
9 / 9 / 4
Регистрация: 12.07.2009
Сообщений: 88
21.12.2009, 16:04  [ТС] 3
Кнопки редактирования не работают, отображаются не ссылками, а просто текстом

http://img136.imageshack.us/img136/1056/deledtfail.th.gif
0
MAcK
Комбайнёр
1578 / 676 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
21.12.2009, 16:25 4
А типа LinkUrl или что-то подобное есть?
0
Глобус
9 / 9 / 4
Регистрация: 12.07.2009
Сообщений: 88
21.12.2009, 18:48  [ТС] 5
В кнопках в смысле??

Я не очень понял вопрос, поэтому опишу ситуацию, как я понимаю
У GridView есть разные типы столбцов, из которых у меня используются BoundField и CommandField.
BoundField - связаны с данными, в моем случае из DataSet
CommandField - содержат Button-ы или LinkButton-ы, при нажатии на которые генерится событие RowCommand с параметром CommandName, который задается для каждой кнопки.

Так вот я не могу понять, почему у меня когда я использую просто кнопки, они создаются некликабельными, а если ссылокные, то просто текстом.

Добавлено через 1 час 53 минуты
О майн гад!!!!

Все дело в том что Свойство Enabled у меня стояло False
0
21.12.2009, 18:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2009, 18:48

Как получить данные из источника данных GridView при нажатии кнопки в TemplateField
Уткнулся в мелочь... Есть GridView, в нем TemplateField, а в нем Button (Все как у Кащея :)). ...

dataset edit и delete кнопки
Добрый день. Нужна ваша помощь, подскажите пожалуйста как можно добавить в datagridview кнопки...

(WEB)C#/ASP.NET - Edit для GridView из TextBox-а!!!
Доброго времени суток уважаемые программисты и кодеры всех мастей. У меня такая проблема. Нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru