0
半時間用在這一個日子......直放站的DataBind錯誤
在一個頁面上,我有這樣的兩個中繼這樣:
<% 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不爲空,並且sql返回一個值。
什麼似乎是問題?
謝謝!
它的確如此。兩張表都有他們的專欄。 我認爲這個錯誤會有所不同。 – lopkiju
所以它包含空值。您在頁面上調用ToString()方法時發生異常。 –
這是一個簡單的例子。 原來的一個有點複雜,所以最後一個在數據庫中是空的,第一個有一個值,我得到的第一個錯誤,所以它混淆了我。無論如何,你是對的。我只留下了評估,現在工作。 謝謝! – lopkiju