Проблема загружает данные для управления в событии страницы Load и называет DataBind () методом. Однако кажется, что, если DataBind () метод называют, прежде чем события генерируются, вышеупомянутое исключение сгенерировано, поскольку именование управления изменилось.
решение состоит в том, чтобы изменить это на если (! IsPostback), DataBind () и затем называют DataBind () методом в конце обработчика событий. Необходимо было бы назвать его большую часть времени так или иначе в конце обработчика для влияния на изменения.
, Если это не Ваша проблема, и Вы изменяете сторону клиента средств управления с помощью JavaScript, проверяете эта статья .
, которая Это сам, ответило сообщение, поскольку я получал много ответов на моем блоге к этой проблеме и думал, что мог бы совместно использовать его далее.
Вы должны иметь доступ к элементам в коллекции, используя этот более простой синтаксис
foreach (string s in CsDll.Properties.Settings.Default.StpInsertSearchPath)
{
Console.WriteLine(s);
}
РЕДАКТИРОВАТЬ:
Следующий код должен помочь
ExeConfigurationFileMap map = new ExeConfigurationFileMap();
map.ExeConfigFilename = Assembly.GetExecutingAssembly().Location + ".config";
Configuration conf = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
ConfigurationSectionGroup appSettingsGroup = conf.GetSectionGroup("applicationSettings");
ClientSettingsSection clientSettings = (ClientSettingsSection) appSettingsGroup.Sections["CsDll.Properties.Settings"];
ConfigurationElement element = clientSettings.Settings.Get("StpInsertSearchPath");
string xml = ((SettingElement)element).Value.ValueXml.InnerXml;
XmlSerializer xs = new XmlSerializer(typeof(string[]));
string[] strings = (string[])xs.Deserialize(new XmlTextReader(xml, XmlNodeType.Element, null));
foreach (string s in strings)
{
Console.WriteLine(s);
}
Может быть более короткий способ, но это у меня работает.
Строки подключения обычно находятся внутри свойства ConnectionStrings диспетчера конфигурации. Вы должны иметь возможность получить доступ гораздо проще с помощью его статического метода.
string myConnectionString = ConfigurationManager.ConnectionStrings["connectioStringName"];
Я считаю, что вам следует использовать тег «AppSettings» вместо «ApplicationSettings» в файле .config, чтобы позволить ConfigurationManager получить доступ через свойство AppSettings.
Я недостаточно знаю о том, как работает ConfigurationManager, чтобы быть уверенным, что это решит вашу проблему, но его переименование и удаление этой настраиваемой группы разделов должны позволить AppSettings работать должным образом.
Изменить Да, похоже, что свойство AppSettings ConfigurationManager обращается к разделу с именем в файле .config.