1) На странице aspx мы определяем элемент управления GridView с именем gvwPolls , а внутри его шаблона мы определяем пользовательский элемент управления с именем pollBox1
<asp:GridView ID="GridView1" DataSourceID="objPolls" ...>
<Columns>
<asp:TemplateField>
<ItemTemplate>
Question is : <%# Eval("QuestionText") %> <br />
<mb:PollBox ID="PollBox1" runat="server" PollID='<%# Eval("ID") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="objPolls" ...></asp:ObjectDataSource>
a) Я предполагаю, что внутри шаблона gvwPolls gvwPollBox1.DataBind вызывается до того, как выражения PollID='<%# Eval("ID") %>'
и <%# Eval("QuestionText") %>
будут оценены ?!
b) Может ли кто-нибудь объяснить, как или почему gvwPollBox1.DataBind вызывается до того, как выражения PollID='<%# Eval("ID") %>'
и <%# Eval("QuestionText") %>
будут оценены?
2) Продолжая приведенный выше пример:
- pollBox1 пользовательский элемент управления определяет элемент управления Repeater с именем rptOptions :
<asp:Repeater runat="server" ID="rptOptions">
<ItemTemplate>
<%# Eval("pollBoxTitle") %>
</ItemTemplate>
</asp:Repeater>
- В файле с выделенным кодом pollBox1 мы связываем rptOptions с источником данных внутри DoBinding () метод.
- Мы также переопределяем метод DataBind () pollBox1:
public override void DataBind()
{
base.DataBind();
DoBinding();
}
a) Я предполагаю, что из-за переопределения pollBox1.DataBind () выражение привязки данных <%# Eval("pollBoxTitle") %>
(определенное внутри шаблона rptOptions) будет оценено до вызова DoBinding метод? Если это так, не будет ли <%# Eval("pollBoxTitle") %>
оценен до того, как rptOptions будет фактически привязан к источнику данных?
b) Если это так, то как rptOptions может извлекать значение (из свойства pollBoxtitle источника данных ) из источника данных, если в то время <%# Eval("pollBoxTitle") %>
выражение получено, rptOptions еще не привязано ни к одному источнику данных?
1065 * спасибо *