<%#
происходит для привязки данных, <%=
будет происходить всегда, когда страница создается независимо от какой-либо привязки данных. Похоже, это то, что вы ищете?
Кроме того, привязка данных является уровнем управления, поэтому, если вы «связываете данные» с сеткой, она не будет привязывать данные к другим элементам управления. Даже встроенные шаблонные элементы управления не будут автоматически привязаны к данным при вызове сетки, если вы не подключите их для этого.
Попробуйте выполнить следующее и посмотрите, исправит ли это вашу проблему:
<div runat="server" visible='<%= CallAFunctionThatReturnsBoolean() ? "true" : "false" %>' >
Если вам требуется, чтобы это произошло в событии привязки данных, я предпочитаю реализовывать OnDataBinding на стороне сервера следующим образом:
// in your aspx
<div runat="server" OnDataBinding="yourDiv_DataBinding">
// in your .cs
protected void yourDiv_DataBinding(object sender, EventArgs e)
{
HtmlControl div = (HtmlControl)(sender);
div.Visible = CallAFunctionThatReturnsBoolean();
}