PDA

View Full Version : سوال: Databinding methods such as Eval(), XPath(), and Bind() can only be used in the context of a databou



forodo
یک شنبه 13 مهر 1393, 21:57 عصر
سلام
من با کدهای زیر repeater رو پرش می کنم:
using (System.Data.SqlClient.SqlConnection sqlConn = new System.Data.SqlClient.SqlConnection(ConfigurationM anager.ConnectionStrings[""].ConnectionString))
{
using (System.Data.SqlClient.SqlDataAdapter sqlCmd = new System.Data.SqlClient.SqlDataAdapter())
{
System.Data.DataTable dt = new System.Data.DataTable();
sqlCmd.SelectCommand = new System.Data.SqlClient.SqlCommand();
sqlCmd.SelectCommand.CommandText = "SELECT * FROM tblComments WHERE tblTrainingID = " + Convert.ToInt32(Request.QueryString["IdShow"]) + " ORDER BY SendDate DESC, SendTime DESC";
sqlCmd.SelectCommand.Connection = sqlConn;
sqlConn.Open();
sqlCmd.Fill(dt);
sqlConn.Close();

Repeater1.DataSource = dt;
Repeater1.DataBind();
}
}

با برای خود کنترل repeater اینجوری نوشتم:

<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<%
Response.Write("<div class=\"MatneAamuzesh AllNazarat\"><div class=\"NazarInformation\"><ul><li style=\"padding-right:0px;\">تاریخ ارسال : " + Eval("SendDate") + "</li><li>نام : " + Eval("Name") + "</li></ul></div><div class=\"Answer\"><a href=\"Show.aspx?Answer=" + Eval("ID") + "&IdShow=" + Request.QueryString["IdShow"].ToString() + "\" style=\"color:#009;\">پاسخ</a></div><div class=\"KhodeNazar\">" + Eval("Comment") + "</div></div>");
%>
</ItemTemplate>
</asp:Repeater>

ولی به من اروره زیر رو میده:
Additional information: Databinding methods such as Eval(), XPath(), and Bind() can only be used in the context of a databound control.

forodo
یک شنبه 13 مهر 1393, 22:11 عصر
درست شد.
ایراد از کدهای HTML بود.
نباید از response استفاده کنیم.
اون کدهای html رو به صورت عادی می نویسیم و فقط قسمتهایی که می خوایم از بانک نمایش داده بشه رو با استفاده از <% %> می نویسیم.
من یک خط رو می ذارم که شلوغ نشه و متوجه بشید منظورم رو.

<li>نام : <%#Eval("Name")%> </li>