Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как получить доступ к источнику данных GridView? / 2 сообщений из 2, страница 1 из 1
31.05.2014, 16:01
    #38657714
VKabanov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить доступ к источнику данных GridView?
Уткнулся в мелочь...

Есть GridView, в нем TemplateField, а в нем Button. (Все как у Кащея :)).

По нажатию на кнопку, мне надо взять данные из источника данных и куда-то отпаравить... Не из GridView, а именно из его источника, т.к. в GridView они уже переработанные.

Вот кнопка в Template


Код: plaintext
1.
2.
3.
4.
5.
6.
<ItemTemplate>
                        <asp:label id="DataSourceLabel"    wrap="true"  Text= '<%# Eval("DataSource") %>' runat="server" />
                        <asp:Button ID="FullButton" Visible="false" Text=" full " CssClass= "GridFullButton"
                                    CommandArgument="<%# ((GridViewRow) Container).RowIndex %>"
                                    onclick="FullButton_Click" runat="server" CommandName='Full' />                       
                    </itemtemplate>



а это обработчик ее нажатия

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        protected void MyGridView_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Full")
            {  
                //получаю номер строки
                int index = Convert.ToInt32(e.CommandArgument);
 
                       ((TextBox)this.DataSourceTextPanel.FindControl("DataSourceTextBox")).Text =
                  ---->    (string)System.Web.UI.DataBinder.Eval(row.DataItem, "DataSource");
            }
       }



как в этой (----> ) части дотянуться до значения столбца "DataSource" источника данных MyGridView?
Зная, что номер выбранной строки index, а ключевое поле для выбора строки "SessionID".

Выбирать по index нельзя, т.к. работает разбиение на страницы.
...
Рейтинг: 0 / 0
01.06.2014, 14:02
    #38657979
VKabanov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить доступ к источнику данных GridView?
Решил проблему. Решение простое, но процесс его поиска основательно укрепил теоретическую базу.

1) Кнопки создаются в ASPX c Visible="false" и CommandArgument="Zero"
2) В RowDataBound когда принимаю по анализу ячейки решение об отображении кнопки делаю так:
Код: c#
1.
DataSourceFullButton.CommandArgument = System.Web.UI.DataBinder.Eval(e.Row.DataItem, "SessionID").ToString();



3) В RowCommand определяю сработавшую кнопку

Код: c#
1.
int SessionID = Convert.ToInt32(e.CommandArgument);  



4) Далее, DataSourceTextBox находящийся в в информационной панели, заполняется следующим образом:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
        
        String SelectCommand = String.Concat("SELECT DataSource FROM SessionSheet WHERE SessionID=",SessionID.ToString());
        this.FullViewSqlDataSource.SelectCommand = SelectCommand;
 
        DataView dv = (DataView)FullViewSqlDataSource.Select(System.Web.UI.DataSourceSelectArguments.Empty);
        String FullDataSourceString = (String)dv.Table.Rows[0][0];
 
        DataSourceTextBox = (TextBox)this.DataSourceTextPanel.FindControl("DataSourceTextBox");
        DataSourceTextBox.Text = FullDataSource;
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как получить доступ к источнику данных GridView? / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]