есть 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
ссылка на оригинальное сообщение
Здравствуйте, 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 чего хотим
}
}
}
ну и чтение — аналогично.
Здравствуйте, james
Советую посмотреть
сюдаАвтор: cadet354
Дата: 30.05.06
Дургими словами, в checkbox-ы нужно генерить и добавлять в грид
всегда в Page_Load, ну понятно что после Bind твоего грида.
2 robusta
а чтение в каком методе делать и как?
покажите плиз
james
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение