PDA

View Full Version : انجام یک جستجو و بایند دوباره دیتا گرید ویو



sara_aryanfar
پنج شنبه 03 فروردین 1391, 13:28 عصر
با سلام دوستان من یک جدول دارم که سفارشات رو داخلش ثبت می کنم و برای هر سفارش هم یک کد یونیک تولید می کنم من این جدول رو توسط یک گرید ویو نمایش میدم الان قصدم این هست که در بالای گرید یک تکس باکس و یک باتن بگذارم و مقداری که داخل تکس باکس درج میشه رو در دیتا بیس سرچ کنم و بعد گرید رو با اون پر کنم نحوه جستجو فکر می کنم با یک سلکت ساده می تونه باشه اما برای پر گردن دوباره دیتا گرید باید به چه نحوی عمل کنم ؟
واینکه آیا میشه از همین دیتا سورسی که الان دیتا گرید رو باهاش داریم پر می کنیم برای جستجو استفاده کنیم؟
ممنون از راهنمایی دوستان

clover
پنج شنبه 03 فروردین 1391, 13:48 عصر
واینکه آیا میشه از همین دیتا سورسی که الان دیتا گرید رو باهاش داریم پر می کنیم برای جستجو استفاده کنیم؟
دقیقا می تونید از همون دیتا سورس استفاده کنید، سلکت شما می تونه یه پارامتر بگیره که همون متن داخل تکست باکس هست. بعد کد سلکت رو به صورت شرطی بنویسید که اگه پارامتر نال بود همه ی رکورد ها رو نشون بده و اگه نال نبود رکورد های جستجو شده، در این صورت کد دکمه هم فقط باید یه خط باشه که در صورتی که ویو استیت دیتاسورس را غیر فعال کنید به همین یه خط کد هم نیازی نیست و فقط کافیه پست یک اتفاق بیفته:

YourGridView.DataBind()

موفق باشید

fakhravari
پنج شنبه 03 فروردین 1391, 14:35 عصر
بله با همان دیتاسورس.
public DataTable One_Etelaeie(int id)
{
SqlConnection con = new SqlConnection(ConnectionString);
SqlCommand cmd1 = new SqlCommand();
cmd1.Connection = con;
cmd1.CommandText = "SELECT * FROM [Etelaeie] Where ID=@ID";
cmd1.Parameters.Add("@ID", SqlDbType.Int).Value = id;
con.Open();

SqlDataAdapter da = new SqlDataAdapter(cmd1);
DataTable dt = new DataTable();

da.Fill(dt);
con.Close();

if (dt.Rows.Count > 0)
{
this.Date = dt.Rows[0]["Date"].ToString();
this.Comennt = dt.Rows[0]["Comennt"].ToString();
this.Title = dt.Rows[0]["Title"].ToString();
this.Time = dt.Rows[0]["Time"].ToString();
this.Subject = dt.Rows[0]["Subject"].ToString();
this.ID = Int32.Parse(dt.Rows[0]["ID"].ToString());
}
else
{
lasteror = "موردی یافت نشد";

}
return dt;
}

sara_aryanfar
پنج شنبه 03 فروردین 1391, 14:36 عصر
این شرط رو به نظرتون بهتره داخل کد بهینید بزارم یا کدهای html اگه ممکنه اون چه رو که تو ذهن دارید کدشو بزارید ممنون میشم

clover
پنج شنبه 03 فروردین 1391, 14:59 عصر
این شرط رو به نظرتون بهتره داخل کد بهینید بزارم یا کدهای html
بستگی به قالب نرم افزار شما داره، به طور مثال اگر از یک کنترل SqlDataSource استفاده کرده باشید من این روش رو بهتون پیشنهاد میدم که نیازی به کد نویسی اضافه نداره و با چند تغییر در کدهای قبلی شما قابل انجامه:

به طور مثال کوئری به این شکل:

SELECT * FROM YourTable WHERE (@Id IS NULL OR Id = @Id)

و دیتاسورس به این شکل:

<asp:SqlDataSource ID="sdsOrders" runat="server"
ConnectionString="<%$ ConnectionStrings:ApplicationServices %>"
SelectCommand="SelectAll" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:ControlParameter ControlID="tbId" Name="Id" PropertyName="Text"
Type="Object" />
</SelectParameters>
</asp:SqlDataSource>
که پارامترش از همون تکست باکس خونده میشه