Как вывести asp: CheckBox из ViewState? (__ControlsRequirePostBackKey __)

Я пытаюсь создать простой веб-сайт 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 или что-то в этом роде. Можно ли это предотвратить?

6
задан Kees C. Bakker 15 February 2011 в 12:39
поделиться