Code Behind
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = Sections.GetSection(1, RequestHelper.QuerystringInt("ItemID", 0));
foreach (DataRow dr in dt.Rows)
{
XmlDocument xmldoc = new XmlDocument();
xmldoc.LoadXml(dr["SectionSettings"].ToString());
XmlNode node = xmldoc.SelectSingleNode("params/FolderID");
if (node != null)
{
((DropDownList)this.FindControl("ddl_folders")).SelectedValue = node.InnerText;
setFileList(int.Parse(node.InnerText));
}
}
}
else
{
return;
//setFileList(int.Parse(((DropDownList)this.FindControl("ddl_folders")).SelectedValue));
}
}
protected void setFileList(int id)
{
r_flist.DataSource = Files.GetFiles(id, "");
r_flist.DataBind();
up5.Update();
}
protected void doSave(object sender, EventArgs e)
{
XmlElement xe;
XmlNode xn;
XmlDocument xmldoc = new XmlDocument();
string xml = "<params></params>";
xmldoc.LoadXml(xml);
XmlDeclaration xmldecl = xmldoc.CreateXmlDeclaration("1.0", "utf-16", null);
XmlElement root = xmldoc.DocumentElement;
xmldoc.InsertBefore(xmldecl, root);
xn = xmldoc.CreateNode("element", "FolderTitle", null);
xn.InnerText = ((DropDownList)this.FindControl("ddl_folders")).SelectedItem.Text;
xmldoc.DocumentElement.AppendChild(xn);
xn = xmldoc.CreateNode("element", "FolderID", null);
xn.InnerText = ((DropDownList)this.FindControl("ddl_folders")).SelectedItem.Value;
xmldoc.DocumentElement.AppendChild(xn);
CheckBox cb;
foreach (RepeaterItem item in ((Repeater)this.FindControl("r_flist")).Items)
{
DataRowView row = (DataRowView)item.DataItem;
cb = (CheckBox)item.FindControl("fileid");
if (cb.Checked)
{
Response.Redirect("!!!!");
xn = xmldoc.CreateNode("element", "fileid", null);
xn.InnerText = "1";
xmldoc.DocumentElement.AppendChild(xn);
}
}
}
protected void ddl_folders_action(object sender, EventArgs e)
{
setFileList(int.Parse(((DropDownList)sender).SelectedItem.Value));
}
Так вот, проблема с чекбоксами. Они упорно не хотят сохранять свое знаечение, т.е. при постбэке чекед ли они, или не чекед, метод doSave всё равно считает, что они не чекед. Я понимаю, что проблема с циклом жизни страницы и разным временем генерации и датабиндинга контролов, но где именно -- найти не могу. Может у кого-то есть идеи?
Спасибо, всех хорошего дня.