Я пытаюсь создать простой веб-сайт Asp.Net, на котором будут перечислены некоторые файлы. Каждый файл нужно проверять. Все идет нормально. Я отключил ViewState в web.config, но у меня все еще есть значения просмотра. После его декодирования с помощью приложения ViewStateDecoder 2 я обнаружил, что мое ViewState выглядит так:
<?xml version="1.0" encoding="utf-16"?>
<controlstate>
<HybridDictionary>
<DictionaryEntry>
<String>__ControlsRequirePostBackKey__</String>
<ArrayList>
<String>ctl00$ContentPlaceHolder1$DirectoryLister1$ctl01$d__bin</String>
<String>ctl00$ContentPlaceHolder1$DirectoryLister1$ctl02$d__obj</String>
<String>ctl00$ContentPlaceHolder1$DirectoryLister1$ctl02$ctl00$ctl00$d__Debug</String>
<String>ctl00$ContentPlaceHolder1$DirectoryLister1$ctl02$ctl00$ctl00$ctl00$ResGen_read_1_tlog</String>
<String>ctl00$ContentPlaceHolder1$DirectoryLister1$ctl02$ctl00$ctl00$ctl00$ResGen_write_1_tlog</String>
<String>ctl00$ContentPlaceHolder1$DirectoryLister1$ctl03$d__Properties</String>
<String>ctl00$ContentPlaceHolder1$DirectoryLister1$ctl03$ctl00$AssemblyInfo_cs</String>
<String>ctl00$ContentPlaceHolder1$DirectoryLister1$ctl04$d____UpgradeReport__Files</String>
<String>ctl00$ContentPlaceHolder1$DirectoryLister1$ctl04$ctl00$UpgradeReport_css</String>
<String>ctl00$ContentPlaceHolder1$DirectoryLister1$ctl04$ctl00$UpgradeReport_xslt</String>
<String>ctl00$ContentPlaceHolder1$DirectoryLister1$ctl04$ctl00$UpgradeReport__Minus_gif</String>
<String>ctl00$ContentPlaceHolder1$DirectoryLister1$ctl04$ctl00$UpgradeReport__Plus_gif</String>
</ArrayList>
</DictionaryEntry>
</HybridDictionary>
</controlstate>
Каждый флажок, который я визуализирую, находится в нем! Как я могу убрать галочку оттуда? Ни один из ящиков не запускает PostBack
. Я пробовал fileCheckBox.AutoPostBack = false;
, но это ничего не решает.
Итак, мой вопрос: Как я могу запретить моим флажкам регистрировать информацию обратной отправки в ViewState ?
Это код в моем UserControl, который генерирует CheckBox для каждого файла:
CheckBox fileCheckBox = new CheckBox();
fileCheckBox.AutoPostBack = false;
fileCheckBox.CssClass = "file " + GetExtension(file.Name);
fileCheckBox.ID = MakeId(file.Name);
fileCheckBox.Checked = true;
fileCheckBox.Text = file.Name;
children.Controls.Add(fileCheckBox);
Отключение ViewState для элемента управления тоже не работает.
Теория
Я подозреваю, что элемент управления выполняет ] Page.RegisterRequiresPostBack
или что-то в этом роде. Можно ли это предотвратить?