1)在aspx页面内的表达式,我们定义了一个名为GridView控件gvwPolls,它的模板中,我们定义了一个名为pollBox1完全失去了 - 数据绑定GridView的模板
<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>
一)我假设用户控制那gvwPolls的模板,gvwPollBox1.DataBind之前调用PollID='<%# Eval("ID") %>'
和<%# Eval("QuestionText") %>
表达式得到评估?!
B)有人可以提供一些解释如何或为何gvwPollBox1.DataBind称为PollID='<%# Eval("ID") %>'
和<%# Eval("QuestionText") %>
表现得到评估之前?
2)继续上述示例:
- pollBox1用户控制定义了一个名为一个中继器控制rptOptions:
<asp:Repeater runat="server" ID="rptOptions">
<ItemTemplate>
<%# Eval("pollBoxTitle") %>
</ItemTemplate>
</asp:Repeater>
- 在pollBox1的代码隐藏文件我们绑定rptOptions内部数据源DoBinding()方法。
- 我们还覆盖pollBox1的DataBind()方法:
public override void DataBind()
{
base.DataBind();
DoBinding();
}
一个)我假定由于重写pollBox1.DataBind(),数据绑定表达式<%# Eval("pollBoxTitle") %>
(内侧rptOptions的定义模板)将在得到评估之前致电DoBinding方法?如果是这样,<%# Eval("pollBoxTitle") %>
之前会不会rptOptions实际上绑定到数据源?
b)中如果是这样的情况下,如何然后是rptOptions能够从数据源中提取的值(从数据源的pollBoxtitle属性),如果此时的<%# Eval("pollBoxTitle") %>
表达得到了评价,rptOptions还没有绑定到任何数据源?
感谢名单