PDA

View Full Version : مبتدی: واکشی اطلاعات از grideview



siaxxx62
دوشنبه 23 دی 1392, 13:04 عصر
دوستان سلام

من در حال ساخت یه پروژه کتابخانه آنلاین هستم با امکان دانلود و مطالعه آنلاین کتاب به مشکلی برخوردم از این قرار که گرید ویو رو ایجاد کردم تمام ستون هاشو با visible=falseغیر فعال کردم و برای طراحی بهتر توش یه template field زدم و طراحی مطالب رو اونجا انجام داردم حالا دکمه دانلودی که توی templatefield ساختم رو چه جوری بگم بره از همین سطر جاری ستون سوم گرید ویو متن لینکش رو بگیره ؟ در واقع با زدن دکمه توی تمپلت لینک از ستون سوم سطر جاری که غیر فعال هم هست واکشی و ریسپانس بشه ؟

ممنون

vajihe11
دوشنبه 23 دی 1392, 13:08 عصر
گرید ویوت با store procedure میشه؟

siaxxx62
دوشنبه 23 دی 1392, 14:45 عصر
دوستان شاید یکم توضیح بیشتر همرا با عکس منظور منو بهتر برسونه البته عکسها مال پروژه نیست و برای عکس و توضیح خلاصه یه چیزی ساختم

115313115314

میخوام وقتی رو دکمه قرمز کلیک میشه بره از روی ستونی از گرید ویو هم سط خودش که غیر فعال هست لینک رو بخونه

siaxxx62
دوشنبه 23 دی 1392, 20:23 عصر
دوستان نیاز مبرم دارم لطفا هر کدوم از دوستان میتونن کمکک کنن تشکر

sajadsobh
دوشنبه 23 دی 1392, 21:31 عصر
شما با استفاده از دستور sql گریدویو رو bind کن بعدش یه فیلد از نوع template بذار. حالا لینک میخواد باشه یا هرچیز دیگه.

siaxxx62
دوشنبه 23 دی 1392, 22:12 عصر
مشکل با نوع یایند حل نشد قبلا امتحان کردم مشکل من خوندن اطلاعات از یه خونه گرید ویو هست که visible اون false هست یا e.commandargument ردیف جاری در آوردم ولی وقتی مقدار یکی از cells ها رو میخوام که لینکم توشه که visibleاون false هست مقدار رو واکشی نمیکنه.مشکل دوم هم در صورت واکشی شدن اطلاعات اینه که لینک رو با چه دستوری به خورد دکمه توی template field بدم؟

sajadsobh
دوشنبه 23 دی 1392, 22:56 عصر
شما همه فیلدها رو از نوع template انتخاب کن، توی قسمت edit columns تیک گزینه Auto-Generate Fields رو بردار. در اینصورت فقط فیلدهایی که شما بایند میکنید داخل گریدویو نمایش داده میشه.

sajadsobh
دوشنبه 23 دی 1392, 23:08 عصر
اون عکسی هم گذاشتی از نوع hyperlink بذار خاصیت img رو همون عکس کتاب بذار و بعد روی edit DateBinding کلیک کن خاصیت navigate Url رو اون فیلدی انتخاب کن که آدرس اون لینک هست.
برای مثال من یه جدول دارم با این فیلدها:
Title, URL

خاصیت navigate Url رو میذاریم Eval("URL")

vajihe11
دوشنبه 23 دی 1392, 23:09 عصر
شما کلید اصلی جدولت رو در propertise گرید بده...بزرگ و کوچیکیشم رعایت کن بعد در قسمت رویداد ها برو selected index changing رو فعال کن...و کلید اصلی رو اونجا بدست بیار و با استور پروسیجر باهاش کار کن...راحته

asgharsosol
سه شنبه 24 دی 1392, 00:56 صبح
با سلام.
این مشکل رو منم داشتم.
میخاستم تو یکی از سطرای گریدویو یه چک باکس بذارم.
بعد یه سری اطلاعات رو از بانگ بخونم و بریزم تو گریدویو.به طوری که هر سطر یه چک باکس هم داشته باشه.
وقتی کاربر تیک چک باکس هر سطر رو میزنه اون سطر انتخاب بشه و بشه عملیاتی رو روش انجام داد.
این کد دقیقا این کار رو انجام میده....


protected void chkstatus_CheckedChanged(object sender, EventArgs e)
{
CheckBox chkstatus = (CheckBox)sender;
GridViewRow row = (GridViewRow)chkstatus.NamingContainer;
string cid = row.Cells[1].Text;
}
این مثال خاص رو برا چک باکس آوردم برا فهم بهتر موضوع.
شما به جای چک باکس از هر چیز دیگه ای میتونین استفاده کنین.

اما این کار یه شرط داره و اونم اینه که شما با استفاده از templatefield هر چیزی رو که دوس دارین تو گریدویو بذارین...
ولی تیک auto-generate field گریدویو رو برندارین.
و datasourse گریدویو رو برابر جدول مورد نظرتون قرار بدین.
به طوری که اطلاعات مورد نظر شما از بانک خونده بشه و داخل گریدویو ریخته بشه.
وقتی این کار رو انجام دادین نگاه کنید که کلید اصلی جدول در سلول چندم گریدویو قرار گرفته.
اونوقت تو خط آخر دستور بالا به جای عدد یک عدد مورد نظرتون رو قرار بدین...
به این صورت میتونین id سطر انتخاب شده رو بدست بیارین....
امیدوارم منظورتون رو درست فهمیده باشم...