花了半天时间......
在一个页面上,我有两个这样的中继器:
<% if (String.IsNullOrEmpty(Request.QueryString["id"])) { %>
<asp:Repeater ID="auth_items" runat="server">
<ItemTemplate>
<a href="/admin/auth.aspx?action=view&id=<%# Eval("id") %>"><%# Security.script(Eval("name").ToString()) %></a><br />
</ItemTemplate>
</asp:Repeater>
<% } else { %>
<asp:Repeater ID="auth_item" runat="server">
<ItemTemplate>
<%# Security.script(Eval("name").ToString()) %>
</ItemTemplate>
</asp:Repeater>
<% } %>
并在代码背后:
if (String.IsNullOrEmpty(Request.QueryString["id"]))
sql = "SELECT * FROM table1 ORDER BY attr1 DESC";
else
{
id = Security.sql(Request.QueryString["id"]);
sql = "SELECT * FROM table2 WHERE attr2=" + id;
}
s.OpenConn(sql);
if (String.IsNullOrEmpty(Request.QueryString["id"]))
{
auth_items.DataSource = s.GetRead();
auth_items.DataBind();
}
else
{
auth_item.DataSource = s.GetRead();
auth_item.DataBind();
}
问题是我在auth_item.DataBind()上得到'对象引用未设置为对象的实例'。 第一个转发器工作正常并显示数据,但第二个转发器将无法正常工作,而是向我抛出错误。 我调试了它,第二个转发器的DataSource不为null,sql返回一个值。
什么似乎是问题?
谢谢!
答案 0 :(得分:0)
table2没有名称列?