Рекомендации по проектированию страницы ASP.NET с Gridview в зависимости от того, является ли заказ новым, ожидающим илиC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Рекомендации по проектированию страницы ASP.NET с Gridview в зависимости от того, является ли заказ новым, ожидающим или

Сообщение Anonymous »

Я создаю Gridview, который будет отображать заказы. У меня есть флажки для новых, ожидающих или завершенных заказов. У меня немного проблемы с настройками пейджера, и я думаю, что это связано с PostBack. В настоящее время настройки моего пейджера таковы, что в виде сетки будут отображаться 10 записей, и я использую NextPrevious. Это раньше работало, пока я не изменил что-то (неизвестно), и теперь я получаю только пейджер «Следующий», но не «Предыдущий». Когда я провел некоторое устранение неполадок, оказалось, что когда пользователь нажимает «Далее», вместо отображения следующих записей после 10 он просто перезагружает страницу со значением по умолчанию, которое по умолчанию отображает «новые» заказы.
Думаю, я неправильно использую PostBack. Как мне лучше всего отобразить содержимое Gridview (из таблиц моей базы данных) на основе статуса (statusId 1 = «новый», statusId 2 = «ожидание», statusId 3 = «завершено». Я использовал событие обработчики новых, ожидающих, завершенных флажков, которые будут определять, какие данные отображать в BindGrid(), но я явно делаю что-то неправильно для этого новичка!
Мой. АСП код для Gridview: Код:

Код: Выделить всё

     protected void Page_Load(object sender, EventArgs e)
{
GetYearCode();  // sets the yearCode to the current fiscal year
Title = "Order Summary for Fiscal Year " + yearCode + "-"  + (yearCode + 1);
//chkNew.Checked = true;

if (!Page.IsPostBack)
{
BindGrid();
}
}
protected void OrderQuickView_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
orderQuickView.PageIndex = e.NewPageIndex;
BindGrid();
}

protected void OrderQuickView_SelectedIndexChanged(object sender, GridViewPageEventArgs e)
{
orderQuickView.PageIndex = e.NewPageIndex;
BindGrid();
}        protected void OnChecked_ToggleNew(object sender, EventArgs e)
{
showNew = chkNew.Checked;

if (showNew)
{
showPending = false;
showCompleted = false;
showAll = false;
chkPending.Checked = false;
chkCompleted.Checked = false;
chkAll.Checked = false;

BindGrid();
}
}
protected void OnChecked_TogglePending(object sender, EventArgs e)
{
showPending = chkPending.Checked;

if (showPending)
{
showCompleted = false;
showAll = false;
showNew = false;

chkAll.Checked = false;
chkCompleted.Checked = false;
chkNew.Checked = false;

BindGrid();
}
}

protected void OnChecked_ToggleCompleted(object sender, EventArgs e)
{
showCompleted = chkCompleted.Checked;

if (showCompleted)
{
showNew = false;
showPending = false;
showAll = false;

chkNew.Checked = false;
chkPending.Checked = false;
chkAll.Checked = false;

BindGrid();
}
}
protected void OnChecked_ToggleShowAll(object sender, EventArgs e)
{
showAll = chkAll.Checked;

if (showAll)
{
showNew = false;
showPending = false;
showCompleted = false;

chkNew.Checked = false;
chkPending.Checked = false;
chkCompleted.Checked = false;

BindGrid();
}
}private void BindGrid()
{

if (showNew)
{
AddParams(1);
}
else if (showPending)
{
AddParams(2);
}
else if (showCompleted)
{
AddParams(3);
}
else if (showAll)
{
AddParams(4);
}
else
{
AddParams(1);
}

using (SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["ForCustomWebApps"]))
{
string sql = ("select x.orderId " +
", lfy.yearDescr as fiscalYr " +
", os.description as orderStatus" +
", format(lo.requestDate, 'MM/dd/yyyy') as requestDate " +
", s1.displayName as librarian " +
", s2.displayName as acqTech " +
", s3.displayName as catTech " +
", d.name as department " +
", i.institution as institution " +
", p.programDescr as program " +
", x.Items " +
", x.orderAmt " +
", format(x.dateFulfilled, 'MM/dd/yyyy') as dateFulfilled " +
", lo.departmentId " +
"from " +
"   (select sum(oi.quantity) as Items, lo.orderId, lo.orderAmt, lo.dateFulfilled " +
"from LibraryOrders lo " +
"join OrderItems oi on lo.orderId = oi.orderId " +
"WHERE lo.statusId " + paramString + " AND lo.yearCode = " + yearCode +
" group by lo.orderId, lo.orderAmt, lo.dateFulfilled) x "  +
"JOIN LibraryOrders lo on x.orderId = lo.orderId " +
"JOIN Departments d on lo.departmentId = d.departmentId " +
"JOIN LibraryFiscalYear lfy on lo.yearCode = lfy.yearCode " +
"LEFT OUTER JOIN Programs p on lo.programId = p.programId " +
"JOIN Institutions i on lo.institutionId = i.institutionId " +
"JOIN LibraryStaff s1 on lo.librarianId = s1.staffId " +
"JOIN LibraryStaff s2 on lo.acquisitionsTechId = s2.staffId " +
"JOIN LibraryStaff s3 on lo.catalogingTechId = s3.staffId " +
"JOIN OrderStatus os on lo.statusId = os.statusId " +
"WHERE lo.yearCode = " + yearCode +
" ORDER BY 1;");

conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);

using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
{
sda.SelectCommand = cmd;
using (DataTable dt = new DataTable())
{
sda.Fill(dt);
orderQuickView.DataSource = dt;
orderQuickView.DataBind();
}
}
}
}

private void AddParams(int selection)
{
switch (selection)
{
case 1:
paramString = " = 1 ";
break;
case 2:
paramString = " = 2 ";
break;
case 3:
paramString = " = 3 ";
break;
case 4:
paramString = " in (1, 2, 3) ";
break;
}
}

Заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/793 ... -being-new
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»