如何使用数据列表中的会话? [英] How to use sessions in datalist ?
问题描述
我创建了一个名为 newest_receipe.aspx 的表单,其中我在数据列表中具有各种带有日期和时间的收据名称,并使用超链接显示收据名称.
I have created one form named newest_receipe.aspx in which i have various receipes name with respective date and time in a data list and receipe names are displayed using hyperlink.
<asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1"
onselectedindexchanged="DataList1_SelectedIndexChanged">
<ItemTemplate>
<asp:HyperLink ID="HyperLink20" runat="server" Font-Underline="True"
ForeColor="#0000CC"
onload="HyperLink20_Load"> <%# Eval("recipe_name") %> </asp:HyperLink>
<asp:Label ID="datetimeLabel" runat="server" Text='<%# Eval("datetime") %>' />
<br />
</ItemTemplate>
</asp:DataList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT [recipe_name], [datetime] FROM [recipe_details] ORDER BY [datetime] DESC">
</asp:SqlDataSource>
现在,我希望当我单击任何一个收货名称时,其所有详细信息(收货名称,成分,说明)应显示在名为 receipe_desc.aspx
的另一种表单上
为此,我尝试了下面的代码
在 newest_receipe.aspx
上编码
Now i want that when i click any one receipe name ,its all details(receipe name,ingredients,instructions) should be displayed on another form named receipe_desc.aspx
for this i tried below code
coding on newest_receipe.aspx
protected void HyperLink20_Load(object sender, EventArgs e)
{
Session["h1"] = Eval("recipe_name");
Response.Redirect("receipedesc.aspx");
}
并在 receipe_desc.aspx
上
and on receipe_desc.aspx
SqlCommand comm;
SqlConnection conn;
SqlDataReader reader;
protected void Page_Load(object sender, EventArgs e)
{
conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\project\App_Data\Receipe.mdf;Integrated Security=True;User Instance=True");
comm = new SqlCommand("SELECT recipe_name " + "WHERE recipe_name= @recipe_name", conn);
comm.Parameters.Add("@recipe_name", System.Data.SqlDbType.NVarChar,50);
comm.Parameters["@recipe_name"].Value = Session["h1"];
try
{
conn.Open();
reader = comm.ExecuteReader();
if (reader.Read())
{
txtreceipeid.Text = reader["recipe_id"].ToString();
txtreceipename.Text = reader["recipe_name"].ToString();
}
reader.Close();
}
catch
{
}
}
}
希望你理解我真正想要的东西
现在我得到的错误是
诸如Eval()之类的数据绑定方法只能在数据绑定控制的上下文中使用.
我应该改用什么
receipe_desc.aspx
Hope u understood what i actually want
now error i am getting is
databinding methods such as Eval() can only be used in context of databound control..
what should i use instead
receipe_desc.aspx
<pre lang="cs">protected void HyperLink20_Load(object sender, EventArgs e)
{
Session["h1"] = Eval("recipe_name");
Response.Redirect("receipedesc.aspx");
}</pre>
甚至我都尝试使用编码
作为
even i tried to use coding
as
protected void HyperLink20_Load(object sender, EventArgs e)
{
Session["h1"] = HyperLink20.Text;
Response.Redirect("receipedesc.aspx");
}
请在此
Pls give your support on this
推荐答案
ConnectionStrings:ConnectionString %> " SelectCommand =" 选择[recipe_name],[datetime]从[recipe_details] ORDER BY [datetime] DESC" < /asp:SqlDataSource >
ConnectionStrings:ConnectionString %>" SelectCommand="SELECT [recipe_name], [datetime] FROM [recipe_details] ORDER BY [datetime] DESC"> </asp:SqlDataSource>
现在,我希望当我单击任何一个收货名称时,其所有详细信息(收货名称,成分,说明)应显示在名为 receipe_desc.aspx
的另一种表单上
为此,我尝试了下面的代码
在 newest_receipe.aspx
上编码
Now i want that when i click any one receipe name ,its all details(receipe name,ingredients,instructions) should be displayed on another form named receipe_desc.aspx
for this i tried below code
coding on newest_receipe.aspx
protected void HyperLink20_Load(object sender, EventArgs e)
{
Session["h1"] = Eval("recipe_name");
Response.Redirect("receipedesc.aspx");
}
并在 receipe_desc.aspx
上
and on receipe_desc.aspx
SqlCommand comm;
SqlConnection conn;
SqlDataReader reader;
protected void Page_Load(object sender, EventArgs e)
{
conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\project\App_Data\Receipe.mdf;Integrated Security=True;User Instance=True");
comm = new SqlCommand("SELECT recipe_name " + "WHERE recipe_name= @recipe_name", conn);
comm.Parameters.Add("@recipe_name", System.Data.SqlDbType.NVarChar,50);
comm.Parameters["@recipe_name"].Value = Session["h1"];
try
{
conn.Open();
reader = comm.ExecuteReader();
if (reader.Read())
{
txtreceipeid.Text = reader["recipe_id"].ToString();
txtreceipename.Text = reader["recipe_name"].ToString();
}
reader.Close();
}
catch
{
}
}
}
希望你理解我真正想要的东西
现在我得到的错误是
诸如Eval()之类的数据绑定方法只能在数据绑定控制的上下文中使用.
我应该改用什么
receipe_desc.aspx
Hope u understood what i actually want
now error i am getting is
databinding methods such as Eval() can only be used in context of databound control..
what should i use instead
receipe_desc.aspx
<pre lang="cs">protected void HyperLink20_Load(object sender, EventArgs e)
{
Session["h1"] = Eval("recipe_name");
Response.Redirect("receipedesc.aspx");
}</pre>
甚至我都尝试使用编码
作为
even i tried to use coding
as
protected void HyperLink20_Load(object sender, EventArgs e)
{
Session["h1"] = HyperLink20.Text;
Response.Redirect("receipedesc.aspx");
}
请对此提供支持
Pls give your support on this
尝试使用DataBinder.Eval().
Try DataBinder.Eval() instead.
这篇关于如何使用数据列表中的会话?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!