GridView и динамическое добавление контролов
От: Аноним  
Дата: 06.06.06 07:15
Оценка:
есть gridview три столбца из базы биндится а в четвертый я вставляю чекбокс руками вот так

for (int i = 0; i < gwBookmOptions.Rows.Count; i++)
{
CheckBox newcheckbox = new CheckBox();
newcheckbox.EnableViewState = true;
newcheckbox.Attributes.Add("runat", "server");
newcheckbox.ID = "ControlCh" + i.ToString();
try
{
if (bookmchar == '1')
newcheckbox.Checked = true;
else
newcheckbox.Checked = false;
}
catch
{
newcheckbox.Checked = false;
}
gwBookmOptions.Rows[i].Cells[1].Controls.Add(newcheckbox);
}

при первоночальной загрузке все хорошо , но когда идет PostBack
то грид отображается без содержимого данного столбца
то есть чекбоксы пропадают

почему так происходит?
как сделать чтоб они не исчезали и прочитать их значения ?



[i]данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: GridView и динамическое добавление контролов
От: robusta  
Дата: 06.06.06 09:15
Оценка:
Здравствуйте, james, Вы писали:


J>почему так происходит?

J>как сделать чтоб они не исчезали и прочитать их значения ?

По всей видимости у Вас данные биндятся на форму след. образом:


    if (!Page.IsPostBack)
    {
    //тут вызывается код вставки checkboxes
    }


и добавление контрола в GridView вызывается только один раз, при Page.Load
Я бы сделал вот так:

<asp:GridView ID="GridView1" runat="server" OnRowCreated="GridView1_OnRowCreated">
<Columns>
    <asp:templatefield >
        <itemtemplate>
              <asp:CheckBox id="ControlCh" runat="server"/>
         </itemtemplate>
         </asp:templatefield>
</Columns>        
</asp:GridView>

    public void GridView1_OnRowCreated(Object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                CheckBox chBox = e.Row.Cells[0].FindControl("ControlCh") as CheckBox;
                if (chBox == null) throw new ApplicationException("Control is not find.");

                //chBox.Checked = true;
                                //творим с CheckBox чего хотим
            }
        }
    }


ну и чтение — аналогично.
Re: GridView и динамическое добавление контролов
От: barcik  
Дата: 06.06.06 09:25
Оценка:
Здравствуйте, james

Советую посмотреть сюда
Автор: cadet354
Дата: 30.05.06

Дургими словами, в checkbox-ы нужно генерить и добавлять в грид всегда в Page_Load, ну понятно что после Bind твоего грида.
Re: GridView и динамическое добавление контролов
От: Аноним  
Дата: 06.06.06 09:49
Оценка:
2 robusta

а чтение в каком методе делать и как?
покажите плиз
james


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.