Как связать GridView при нажатии кнопки, поскольку пустая сетка привязывается к обратной передачеC#

Место общения программистов C#
Ответить
Anonymous
 Как связать GridView при нажатии кнопки, поскольку пустая сетка привязывается к обратной передаче

Сообщение Anonymous »

У меня есть форма, в которой я использую GridView, и я удаляю столбцы во время выполнения на основе некоторого условия и при событии нажатия кнопки. Я привязываю GridView, заполняя таблицу данных, но она показывает пустую сетку со всеми пустыми строками только.
Код Gridview: При загрузке страницы мне просто нужно удалить ненужные столбцы на основе некоторого условия и скрыть сетку:

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

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//This action will be performed once based on access type.
AccessControlGridColumnAdjustment();
AccessControlGrid.Visible = false;
}
}
и, наконец, при нажатии кнопки мне нужно заполнить и отобразить сетку:

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

protected void ImgBtnGo_Click(object sender, EventArgs e)
{
if (returnTable == null)
returnTable = new DataTable("AccessControl");

CreateAccessControlDataTable(ref returnTable, hdnAccessType.Value);
LoadData();
PopulateDataTable(ref returnTable, accessControlResultSet, hdnAccessType.Value);
AccessControlGrid.DataSource = returnTable;
AccessControlGrid.DataBind();
AccessControlGrid.Visible = true;
}
Внутри CreateAccessControlDataTable я просто создаю структуру Datatable на основе некоторого условия:

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

public DataTable CreateAccessControlDataTable(ref DataTable returnTable, string accessType)
{
try
{
#region Creating DataTable Schema for different access types
switch (accessType)
{
case "FS":
returnTable.Columns.Add(new DataColumn("UserNo"));
returnTable.Columns.Add(new DataColumn("UserName"));
returnTable.Columns.Add(new DataColumn("IsOriginal"));
returnTable.Columns.Add(new DataColumn("IsContinuation"));
returnTable.Columns.Add(new DataColumn("IsDebtorAmendment"));
returnTable.Columns.Add(new DataColumn("IsSecPartyAmendment"));
returnTable.Columns.Add(new DataColumn("IsPartialAssignment"));
returnTable.Columns.Add(new DataColumn("IsFullAssignment"));
returnTable.Columns.Add(new DataColumn("IsTermination"));
returnTable.Columns.Add(new DataColumn("IsCollateralAmendment"));
break;
case "IPF":
returnTable.Columns.Add(new DataColumn("UserNo"));
returnTable.Columns.Add(new DataColumn("UserName"));
returnTable.Columns.Add(new DataColumn("IsInPrepFilingDeletion"));
break;
case "FLD":
returnTable.Columns.Add(new DataColumn("UserNo"));
returnTable.Columns.Add(new DataColumn("UserName"));
returnTable.Columns.Add(new DataColumn("FloodStopAccess"));
returnTable.Columns.Add(new DataColumn("FloodReIssueAccess"));
returnTable.Columns.Add(new DataColumn("FloodLifeOfLoan"));
returnTable.Columns.Add(new DataColumn("FloodBasicCertificate"));
break;
}
#endregion
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
return returnTable;
}
Внутри функций LoadData() и PopulateDataTable() я просто заполняю пустую таблицу данных значениями из серверной части, которая работает нормально, но в конце я получаю пустую сетку с несколькими пустыми строками. как показано ниже:
Изображение

Я проверил здесь несколько потоков, но в моем случае ничего не помогло.

Примечание: если я делаю то же самое внутри — if (!IsPostback ) {} тогда
gridview загружается правильно, но мне не нужно этого делать, мне нужно загрузить
сетку на основе критериев поиска при обратной передаче.


Подробнее здесь: https://stackoverflow.com/questions/765 ... n-postback
Ответить

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

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

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

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

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