Если вы не привязываете данные к контейнеру, в котором находится SqlDataSource, синтаксис <%# %>
не будет работать (поскольку это синтаксис привязки, а свойство никогда не привязывается), поэтому ваша проблема в том, что свойство ConnectionString просто не получает установить на всех.
Я бы установил это в codebehind, или, в качестве альтернативы, имел бы совершенно другую конфигурацию для производства. Для кода:
SqlDataSource1.ConnectionString = DBConnections.DefaultConnection;
Еще одна опция: если вы используете одно и то же соединение в сотнях мест, просто создайте элемент управления, который наследуется от SqlDataSource, и переопределите свойство ConnectionString, установите его только в этом методе getter / setter и просто используйте этот элемент управления везде. 1007 *
Что-то вроде:
public class MySqlDataSource : SqlDataSource
{
public string _customConnectionStr; //Allow a custom connection still
public override string ConnectionString {
//Default the connection if a custom isn't set
get { return _customConnectionStr ?? DBConnections.DefaultConnection; }
set { _customConnectionStr = value; }
}
}