aspx文件源代码:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" DataKeyNames ="BridgeID" >
<Columns>
<asp:TemplateField HeaderText="图片">
<ItemTemplate>
<asp:Image ID="Image1" runat="server" ImageUrl ='<%# "Handler.ashx?BridgeID="+Eval("BridgeID") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:tongruiConnectionString %>"
SelectCommand="SELECT [BridgeImage] FROM [Bridge] WHERE ([BridgeID] = @BridgeID)">
<SelectParameters>
<asp:Parameter DefaultValue="1" Name="BridgeID" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
Handler.ashx的源代码:public void ProcessRequest(HttpContext context)
{
int BridgeID = int.Parse(context.Request.QueryString["BridgeID"]);
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
string sql = "select BridgeImage from Bridge where BridgeID=" + BridgeID;
SqlCommand command = new SqlCommand(sql, conn);
command.Parameters.Add(new SqlParameter("@BridgeID", BridgeID));
//command.Parameters.Add(new SqlParameter("@Size", (int)size));
conn.Open();
//SqlCommand cmd = new SqlCommand("select imagedata from myimage where id=@id", conn);
//cmd.Parameters.Add("@id", SqlDbType.Int);
//cmd.Parameters["@id"].Value = id; //conn.Open();
SqlDataReader dr = command.ExecuteReader();
if (dr.Read())
{
context.Response.BinaryWrite((byte[])dr["BridgeImage"]);
}
dr.Close();
}怎么传递BridgeID的值,我有在.aspx.cs文件中写BridgeID=1,但无效
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" DataKeyNames ="BridgeID" >
<Columns>
<asp:TemplateField HeaderText="图片">
<ItemTemplate>
<asp:Image ID="Image1" runat="server" ImageUrl ='<%# "Handler.ashx?BridgeID="+Eval("BridgeID") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:tongruiConnectionString %>"
SelectCommand="SELECT [BridgeImage] FROM [Bridge] WHERE ([BridgeID] = @BridgeID)">
<SelectParameters>
<asp:Parameter DefaultValue="1" Name="BridgeID" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
Handler.ashx的源代码:public void ProcessRequest(HttpContext context)
{
int BridgeID = int.Parse(context.Request.QueryString["BridgeID"]);
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
string sql = "select BridgeImage from Bridge where BridgeID=" + BridgeID;
SqlCommand command = new SqlCommand(sql, conn);
command.Parameters.Add(new SqlParameter("@BridgeID", BridgeID));
//command.Parameters.Add(new SqlParameter("@Size", (int)size));
conn.Open();
//SqlCommand cmd = new SqlCommand("select imagedata from myimage where id=@id", conn);
//cmd.Parameters.Add("@id", SqlDbType.Int);
//cmd.Parameters["@id"].Value = id; //conn.Open();
SqlDataReader dr = command.ExecuteReader();
if (dr.Read())
{
context.Response.BinaryWrite((byte[])dr["BridgeImage"]);
}
dr.Close();
}怎么传递BridgeID的值,我有在.aspx.cs文件中写BridgeID=1,但无效
修改后的.aspx代码 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" DataKeyNames ="BridgeID" >
<Columns>
<asp:TemplateField HeaderText="图片">
<ItemTemplate>
<asp:Image ID="Image1" runat="server" ImageUrl ='<%# "Handler.ashx?BridgeID="+Eval("BridgeID") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:tongruiConnectionString %>"
SelectCommand="SELECT [BridgeID] FROM [Bridge] WHERE ([BridgeCode] = @BridgeCode)">
<SelectParameters>
<asp:Parameter DefaultValue="001" Name="BridgeCode" Type="String" />
</SelectParameters>
</asp:SqlDataSource>