我在转发器的<table>
内有一个标签。我有一个名为“NameShow.ashx”的HttpHandler,通过将“id”传递给处理程序,将“name”作为“text / plain”返回。
我想检索“名称”(类似于从处理程序中检索“图像”)。
这是我的代码:
<asp:Label ID="Label1" runat="server" Text='<%#""NameShow.ashx?id="+Eval("id") %>'>
</asp:Label>
我将此标签的文字称为 - &gt;&gt; NameShow.ashx?ID = 123
请帮助我找到错误的地方。
这是我的Haldler代码。
使用System; 使用System.Web;
public class NameShow:IHttpHandler {
public void ProcessRequest (HttpContext context)
{
string strid = context.Request.QueryString["id"];
long pro_id = int.Parse(strid);
string name = DBHelpername.name(pro_id);
context.Response.ContentType = "text/plain";
context.Response.Write(name);
}
public bool IsReusable {
get {
return false;
}
}
}
这是我的DBHelper代码:
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
/// <summary>
/// Summary description for DBHelpername
/// </summary>
public class DBHelpername
{
public DBHelpername()
{
//
// TODO: Add constructor logic here
//
}
public static string name(long id)
{
SqlConnection connect = new SqlConnection
("Data Source=DELL-36B3EF6E9F;Integrated Security=True;Initial Catalog=pool");
connect.Open();
SqlCommand sc =
new SqlCommand("SELECT name FROM Profile WHERE profile_id=" + id + "", connect);
SqlDataAdapter da = new SqlDataAdapter(sc);
DataSet ds = new DataSet();
da.Fill(ds);
string nameret = ds.Tables[0].Rows[0][0].ToString();
return nameret;
connect.Close();
}
}
答案 0 :(得分:1)
如果您不同意使用HTTP处理程序的想法,那么我建议在.aspx页面的代码隐藏中创建一个方法,使您的处理程序执行相同的逻辑减去内容类型的内容,如下所示:
protected string GetName(int pro_id)
{
return DBHelpername.name(pro_id);
}
现在,在您的标记中,您可以使用此方法,如下所示:
<asp:Label ID="Label1" runat="server" Text='<%# GetName((int)Eval("id")) %>'>
</asp:Label>
答案 1 :(得分:0)
<%# new System.Net.WebClient().DownloadString("http://www.yoursite.com/NameShow.ashx?id="+Eval("id"))) %>
这样的事情可能有用,虽然您可能需要重新考虑您的方法,因为您要对转发器中的每个项目执行http请求 - 这样做不会很好!它看起来像是在一个应用程序/网站中,所以你不能调用在这个页面的代码隐藏中查找名称的代码吗?