Member 10926063 Ответов: 1

Привязка GridView itemtemplate с различными данными на странице aspx


У меня есть gridview, который связывается с таблицей данных.Этот datatable заполняется SQL-процедурой, содержащей 3 оператора select (return count) с предложением where. Мне нужно показать возврат этих подсчетов из оператора 3select внутри GridView itemtemplate на этикетках.Это должно быть сделано на странице aspx с помощью eval<%count1%>.
Пожалуйста, помогите, новичок в asp gridview.

Что я уже пробовал:

Персонализация gridvw.набор данных();
В aspx-файла GridView в свойства itemtemplate страницы

Karthik_Mahalingam

каков же результат СП?
каждый результат будет иметь только счет или данные также?

Member 10926063

СП 3 вернуть результирующий набор, который содержит заявление, как показано ниже.

Выберите count (patent) из таблицы 1, где lslegal=1 и помечено = 1

Выберите count (patent) из таблицы 1, где patentlegal=1

Выберите count (patent) из таблицы 1, где patentIsNotlegal=1

gridview-это привязка выше результата набора данных.

Karthik_Mahalingam

зачем вам нужен gridview для отображения счета, вы должны использовать метку правильно?

Member 10926063

Я использую ярлык, который находится внутри GridView itemtemplate.
Отображение строки Gridview выглядит следующим образом.
1-7-16 7 Сделал 1, Не Сделал

Karthik_Mahalingam

что такое источник данных для gridivew

Member 10926063

Источник данных - это результат возврата из SP, упомянутого выше.

Когда я связываю gridview с набором данных вышеуказанного SP ,я получаю результат только первого оператора select, что совершенно очевидно. Таким образом, он должен быть преобразован в datatable.Теперь я получаю результат от всех операторов select,используя dt[0], dt[1], dt[2].это нормально. Но мне нужно, чтобы отобразить вышеуказанной ДТ внутри GridView в ярлык через ризограф.

Karthik_Mahalingam

таким образом, вы будете показывать только 3 счетных данных в сетке, ничего кроме этого?

Member 10926063

Нет, у меня есть вложенный gridview, и при щелчке родительского GridView itemtemplate (который контактирует с датой ,ярлыком для графа 1 и ярлыком для графа 2) дочерняя сетка открыта.

Member 10926063

Пожалуйста, помогите мне.

Karthik_Mahalingam

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

Member 10926063

Спасибо за ваше предложение, но я все еще нахожусь в поиске решения вышеуказанной проблемы.

1 Ответов

Рейтинг:
1

Vincent Maverick Durano

Элемент управления представлением данных, например GridView может справиться только с одним DataSource в одно время. Поскольку ваши данные поступают из разных таблиц, вам может потребоваться объединить эти таблицы, чтобы вы могли выбрать столбцы из Объединенных таблиц и сделать это в качестве конечного результата от вашего SP. Кроме того, вы можете запросить эти таблицы, как и то, что вы сделали в настоящее время, и создать пользовательский DataTable в вашем коде это будет содержать все нужные вам столбцы из двух таблиц. Затем вы можете использовать этот обычай DataTable как окончательный вариант DataSource.

Вот краткий пример:

private void BindGrid(DataSet ds)
{
        DataTable dt = new DataTable();
        DataRow dr;
        dt.Columns.Add(new System.Data.DataColumn("MarkedCount", typeof(String)));
        dt.Columns.Add(new System.Data.DataColumn("LegalCount", typeof(String)));
        dt.Columns.Add(new System.Data.DataColumn("NotLegalCount", typeof(String)));

        DataTable firstResult = ds.Tables[0];
	DataTable secondResult = ds.Tables[1];
	DataTable thirdResult = ds.Tables[2];

	if (firstResult.Rows.Count > 0){
            dr = dt.NewRow();
            dr[0] = firstResult.Rows[0][0].ToString();
            dr[1] = secondResult.Rows[0][0].ToString();
	    dr[2] = thirdResult.Rows[0][0].ToString();
            dt.Rows.Add(dr);
        }

	GridView1.DataSource = dt;
        GridView1.DataBind();
}


То DataSet параметр будет содержать данные из вашего SP. как только вы их получите, вы сможете использовать столбцы, определенные из пользовательского DataTable, и используйте это, чтобы связать свой контроль внутри ItemTemplate.

<itemtemplate>
        <asp:label id="Label1" runat="server" text="<%# Bind("MarkedCount") %>">
</asp:label></itemtemplate>