Gridview все еще обновляется, когда не в UpdatePanel ⇐ C#

Место общения программистов C#
Anonymous
Gridview все еще обновляется, когда не в UpdatePanel

Сообщение Anonymous »

Проблема и описание:
У меня есть Gridview с программно добавленными распадающимися списками на rowdatabound к каждой ячейке. Выпадающие списки и сохранить их в базе данных.
Однако, когда я нажимаю на кнопку, это вызывает возврат и удаляет все элементы управления в Gridview и, следовательно, ни один из них не может быть найден в моем кнопке. Не могу, казалось, что можно сохранить выпадающие списки или данные, когда я нажимаю кнопку. Как вы можете видеть, я разместил обновление Panel только вокруг своей кнопки, однако, он все еще, казалось, обновлял Gridview и удаляет все элементы управления. Панели, или есть еще один метод, чтобы получить мне то, что мне нужно? (Смысл, если что -то еще предлагается, я, вероятно, уже пробовал).
edit 2:
Поставляемый код:
Это когда я связываю выпадающие списки:

Это происходит, когда я связываю списки выпадающих списков:

​​
​​

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

 protected void gv_Rota_RowDataBound(object sender, GridViewRowEventArgs e)
{
for (int i = 1; i 
Это когда я создаю Gridview, зависит от количества проходящих столбцов: < /p>
 private void BindGrid(int Amount)
{
gv_Rota.DataSource = null;
gv_Rota.Columns.Clear();

BoundField bfield = new BoundField();
bfield.HeaderText = "Days";
bfield.DataField = "Days";
gv_Rota.Columns.Add(bfield);

for (int i = 0; i < Amount; i++)
{
int week = i + 1;
string sWeek = "Week " + week.ToString();

TemplateField tfield = new TemplateField();
tfield.HeaderText = sWeek;
gv_Rota.Columns.Add(tfield);
}

DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("Days", typeof(string)));
dt.Rows.Add("M");
dt.Rows.Add("T");
dt.Rows.Add("W");
dt.Rows.Add("T");
dt.Rows.Add("F");
dt.Rows.Add("S");
dt.Rows.Add("S");
gv_Rota.DataSource = dt;
gv_Rota.DataBind();

}
< /code>
Здесь я получаю выбранную сумму столбцов и вызываю метод для создания Gridview, я также храню сумму в кэше: < /p>
protected void ddl_RotaAmountOfWeeks_SelectedIndexChanged(object sender, EventArgs e)
{
if (IsPostBack)
{
int Amount;
int.TryParse(ddl_RotaAmountOfWeeks.SelectedItem.ToString(), out Amount);

ColumnCount = Amount;

Cache.Add("columnCount", ColumnCount, null, Cache.NoAbsoluteExpiration, new TimeSpan(0, 60, 0), CacheItemPriority.Default, null);

BindGrid(Amount);
}
}
< /code>
Код кнопки: < /p>
 protected void btn_AddRota_Click(object sender, EventArgs e)
{
//My first attempt at trying to save the GridView, realising I Cache'd the GridView before selecting items.
//gv_Rota = (GridView)Cache["cacheGridView"];

//Set of the size of the array to the amount of rows * colums
//this will be the maximum amount of events added
int arraysize = gv_Rota.Rows.Count * (int)Cache["columnCount"];

//the current array item being added
int arrayitem = 0;

//Finally an array of ROTA_EVENTS to pass to WCF
wsPersonnel.DC_WFM_ROTA_EVENTS[] arrayofRotaEvents = new wsPersonnel.DC_WFM_ROTA_EVENTS[arraysize];

foreach (GridViewRow row in gv_Rota.Rows)
{
for (int i = 1; i 

Подробнее здесь: [url]https://stackoverflow.com/questions/24138499/gridview-still-being-refreshed-when-not-in-updatepanel[/url]

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