Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
Ruia
4 / 4 / 7
Регистрация: 21.02.2013
Сообщений: 71
1

Изменение данных в GridView при изменении строки запроса в SqlDataSource

26.02.2013, 15:09. Просмотров 1351. Ответов 2
Метки нет (Все метки)

Доброго времени суток
Возникла проблема с GridView и SqlDataSource: когда привязываю GridView к конкретному запросу, всё работает отлично.

Разметка:
C#
1
2
3
4
5
6
7
8
9
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:crmConnectionString %>" ProviderName="<%$ ConnectionStrings:crmConnectionString.ProviderName %>"></asp:SqlDataSource>
<div>
    <asp:GridView ID="GridView1" runat="server" AllowSorting="True" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" Visible="false">
        <Columns>
            <asp:BoundField DataField="office" HeaderText="office" SortExpression="office" />
            <asp:BoundField DataField="COUNT(*)" HeaderText="COUNT(*)" SortExpression="COUNT(*)" />
        </Columns>
    </asp:GridView>
</div>
Обработчики:
C#
1
2
SqlDataSource1.SelectCommand = "SELECT office, COUNT(*) FROM raw WHERE office IN ('1', '2', '3', '4') AND date_move BETWEEN '2012-01-01' AND '2012-12-31' GROUP BY office";
GridView1.Visible = true;
А когда пытаюсь сделать вывод в GridView в зависимости от того, какой будет будет запрос, например как-то так:

Разметка:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<div class="Table">
    <asp:Table ID="Table1" runat="server">
        <asp:TableRow ID="TableRow1" runat="server">
            <asp:TableCell ID="TableCell1" runat="server">
                <asp:Label ID="Label1" runat="server" Text="nType" CssClass="Label"></asp:Label>
            </asp:TableCell>
            <asp:TableCell ID="TableCell2" runat="server" ColumnSpan="2">
                <asp:DropDownList ID="DropDownList1" runat="server" CssClass="DropDownList">
                    <asp:ListItem Selected="True" Value="1">Первый</asp:ListItem>
                    <asp:ListItem Value="2">Второй</asp:ListItem>
                </asp:DropDownList>
            </asp:TableCell>
        </asp:TableRow>
    </asp:Table>
</div>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:crmConnectionString %>" ProviderName="<%$ ConnectionStrings:crmConnectionString.ProviderName %>"></asp:SqlDataSource>
<div class="GridView">
    <asp:GridView ID="GridView1" runat="server" AllowSorting="True" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" Visible="false"></asp:GridView>
</div>
Обработчики:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if (nType == 1)
{
    SqlDataSource1.SelectCommand = "SELECT office, COUNT(*) FROM raw WHERE office IN ('1', '2', '3', '4') AND date_move BETWEEN '2012-01-01' AND '2012-12-31' GROUP BY office";
 
    // Обращение к BoundField
        
    GridView1.Visible = true;   
}
else if (nType == 2)
{
    SqlDataSource1.SelectCommand = "SELECT postavka, COUNT(*) FROM raw WHERE date_move BETWEEN '2012-01-01' AND '2012-12-31' GROUP BY postavka";
    
    // Обращение к BoundField
    
    GridView1.Visible = true;  
}
Пробовал как оставлять пустые <asp:BoundField /> в разметке, так и удалить совсем. Проблема в том, что не знаю, как обратиться к BoundField, у него ведь нет ID (и GridView1.BoundField тоже не то, а даже если так, непонятно, как отличить одно от другого).

Как можно программно создать BoundField внутри GridView, а потом указать значения атрибутов DataField и прочих? Помогите пожалуйста.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2013, 15:09
Ответы с готовыми решениями:

Привзяка DropDownList к SqlDataSource внутри GridView
Добрый день! Прошу Вашей помощи. Есть GridView, привязанный к SqlDataSource &quot;Tovar&quot;. По событию...

GridView/SqlDataSource: не хочет работать процедура обновления
Добрый день! Вчера целый день потратил и так и нечего решил. Обновления через ХП не хочет работать....

Изменение цвета строки gridview
Хочу создать школьный дневник с помошью GridVIew. Но никак не получается убрать границы...

Позиционирование записи в SqlDataSource при выборе значения в GridView
Доброе время суток! Помогите начинающему! VB.Net, ASP.Net, VS 2010 Задача: есть GridView с...

Динамическое изменение данных в таблице при изменении значения в списке
Здравствуйте, Уважаемые. У меня к Вам вопрос. Есть база данных с таблицей &quot;USERS&quot;( очень много...

2
tigra
13 / 13 / 2
Регистрация: 13.02.2013
Сообщений: 45
26.02.2013, 15:30 2
После:
Цитата Сообщение от Ruia Посмотреть сообщение
SqlDataSource1.SelectCommand = "SELECT office, COUNT(*) FROM raw WHERE office IN ('1', '2', '3', '4') AND date_move BETWEEN '2012-01-01' AND '2012-12-31' GROUP BY office";
делай привязку к GridView:
C#
1
GridView1.DataBind();
и так каждый раз при смене запроса.
1
Ruia
4 / 4 / 7
Регистрация: 21.02.2013
Сообщений: 71
27.02.2013, 00:14  [ТС] 3
tigra, спасибо огромное.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2013, 00:14

GridView и несколько SqlDataSource
Здравствуйте. Никак не могу сообразить. Пишу ASP.NET приложение в CodeGear RAD 2007. При создании...

LocalDB. Обновление данных в DataGridView при изменении строки подключения
Доброго времени суток! Пытаюсь разобраться с LocalDB. Организовал метод, который в App.config...

Изменение данных одного select при изменении другого select
нужно что бы выбирая одну группу менялись данные в &quot;номере по журналу&quot; не понимаю как это сделать...


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

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

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