ASP:DropDownList в ItemTemplate: Почему атрибут SelectedValue позволяется?

GetFileSystemInfos возвращает массив FileSystemInfo , который не является FileInfo

For Each fi As FileSystemInfo In dir.GetFileSystemInfos()
   ' ... '
Next

A FileInfo также FileSystemInfo, потому что это дочерний класс, а не наоборот. DirectoryInfo.GetFileSystemInfos возвращает файлы и каталоги. Таким образом, вы не можете привести их к FileInfo.

Но так как вам нужен Length, я предполагаю, что вам нужны только файлы. Затем используйте GetFiles:

For Each fi As FileInfo In dir.GetFiles()
   ' ... '
Next

11
задан recursive 24 February 2009 в 04:44
поделиться

2 ответа

Это означает, что Вы не можете установить его через разработчика.

Корректный путь:

<asp:DropDownList runat="server" ID="testdropdown">
    <asp:ListItem Text="1" Value="1"></asp:ListItem>
    <asp:ListItem Text="2" Value="2" Selected></asp:ListItem>
    <asp:ListItem Text="3" Value="3"></asp:ListItem>
</asp:DropDownList>

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

DropDownList. Метод SelectedValue предназначен, чтобы быть примененным во времени выполнения следовательно ошибка о неспособности установить его 'декоративно'

7
ответ дан 3 December 2019 в 08:31
поделиться

в разметке используйте синтаксис SelectedValue='<%# "32" %> .(обратите внимание на следующий пример):

 <asp:DropDownList  ID="ddlField" SelectedValue='<%# "32" %>' 
   runat="server"      DataTextField="Name" DataValueField="ID"  >
  </asp:DropDownList>

или в code-behind сразу после DataBinding .(пример):

ddlField.DataSource = Fields.SelectAll();
        ddlField.DataBind();           
        ddlField.SelectedValue = "32";
7
ответ дан 3 December 2019 в 08:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: