PDA

View Full Version : سوال: نمایش اطلاعات در گریدویو و همزمان نمایش یک فیلد در فوتر



bftarane
دوشنبه 02 بهمن 1391, 11:52 صبح
سلام.
من در یه Sp از سه تا جدول اطلاعات رو واکشی می کنم
ALTER procedure [dbo].[GetOrderInfo]
(
@OrderId int
)
as
begin
select pd_name,tbl_product.pd_id,odl_quantity,odl_price,T otal
from tbl_product inner join tbl_orderlines On tbl_orderlines.pd_id=tbl_product.pd_id
inner join tbl_orders on tbl_orders.od_id=tbl_orderlines.od_id
where tbl_orderlines.od_id=@OrderId

هدفم اینه که کالاهای سفارش داده شده رو بر اساس شناسه سفارش در گریدویو نشون بدم
مثلا
کلاه
کیف
کفش
و در فوتر گریدویو
هم
قیمت کل رو که اون رو هم از یکی از جداول واکشی کردم نشون بدم


protected void grd_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "odinfo")
{
int Id = Convert.ToInt32(e.CommandArgument);

gvodinfo.DataSource = GetOrderInfo(Id);

gvodinfo.DataBind();

SqlDataReader dr= GetOrderInfo(Id);
dr.Read();
(gvodinfo.FooterRow.FindControl("lblTotal") as Label).Text = dr["Total"].ToString();


mv.ActiveViewIndex = 1;


}
}

public SqlDataReader GetOrderInfo(int Id)
{
SqlDataReader dr= MyDALBase.ExecuteReader(System.Data.CommandType.St oredProcedure, "GetOrderInfo", new SqlParameter[]{
new SqlParameter("@OrderId",Id)
});
return dr;
}

من با کد بالا تونستم این کار رو انجام بدم
ولی همونطور که می بینید
GetorderInfo
دو بار صدا زده میشه یه بار برای نشون دادن کالاها
و یه بار برای نشون دادن قیمت کل

که به نظرم اصلاً جالب نیست به خاطر یه قیمت کل دوباره کلی اطلاعات واکشی بشن
آیا با یه بار فراخوانی نمیشه این کار رو انجام داد
من خواست این کار رو انجام بدم
منتها قیمت کل رو نشون میداد ولی کالاها رو فقط اولین کالا رو نشون می داد
لطفاً راهنمایی کنید

mehrzad_ali
دوشنبه 02 بهمن 1391, 15:17 عصر
سلام از این ایده بگیرید