توی یه صفحه یه GridView1 دارم که یه فیلد select داره میخوام وقتی روی select کلیک کرد code رو به همون صفحه بفرسته با کد زیر این کارو نمی کنه؟
Response.Redirect("Default.aspx?code=" + e.CommandArgument);
توی یه صفحه یه GridView1 دارم که یه فیلد select داره میخوام وقتی روی select کلیک کرد code رو به همون صفحه بفرسته با کد زیر این کارو نمی کنه؟
Response.Redirect("Default.aspx?code=" + e.CommandArgument);
از قسمت خاصیت های gridview خاصیت datakeyname فیلد code رو هم اضاف کن و بعد در قسمت کدنویسی select گرید برای بدست آوردن مقدار فیلد کد از متد زیر استفاده کن :
gridview1.selecteddatakey(*)
به جای * هم عدد قرار میگیره که این عدد بستگی به این داره که فیلد code در کدام اولویت در خاصیت datakeyname وجود داره یعنی اگر این فیلد بعد از فیلد id باشه عددش میشه 1 و برای id 0 است
ممنون. ولی نشد
خطای زیرو بده
Object reference not set to an instance of an object.
فکر کنم به GridView1 گیر میده
دوست عزیز به جای استفاده از select خود gridview شما ابتدا TemplateField به صورت زیر درست کنین
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="Button1" runat="server" CommandArgument="<%# Bind('rowid') %>" CommandName="xxx"
Font-Names="Tahoma" Font-Size="Small" Text="حذف" />
</ItemTemplate>
</asp:TemplateField>
که rowid کلید شماست.سپس شما در رویداد RowCommand به صورت زیر عمل کنین
if (e.CommandName == "xxx")
{
Response.Redirect("Default.aspx?code=" + e.CommandArgument);
}
این روش همه جا میتونه بهتون کمک کنه
این کارو کردم. خطا نداد ولی با کد زیر بازم جواب نداد
if (IsPostBack)
{
string code=Request.QueryString["code"];
TextBox1.Text = code;
}
! قبل از IsPostBack فراموش کردین
بازم نشد. ببینین من یه صفحه مثل عکس زیر دارم
با کلیک انتخاب میخوام کد اتاق و تعداد آن رو بگیره و با تاریخ شروع مقایسه کنه. ولی نمیشه. چون textbox رو خالی میکنه
گرید<asp:GridView ID="GridView1" runat="server" DataKeyNames="TopicID" AutoGenerateColumns="False"
e.CommandArgument
دوست عزیز خواهشا سوالتون رو واضح بگین شما اول میگین که میخوام با querystring اطلاعات رو بفرستم به یه صفحه دیگه الان میگین میخوام textbox رو پر کنم.
آخه اون querystring مشکلش حل شد. بذارین کامل بگم. توی gridview یه سری اطلاعات از بانک رو نشون میده که کاربر باید تعداد اتاق را از combo انتخاب کنه و تاریخ ورود به هتل رو پر کنه و دکمه انتخاب رو بزنه. حالا من میخوام برنامه تاریخ رو بگیره کد و تعداد اتاق انتخاب شده رو هم بگیره و با این اظلاعات ببینه در اون تاریخ اتاق خالیه یا نه. تا اینجا فقط تونستم کد اتاق رو بفرستم اما تاریخ و تعداد اتاق رو نمیدونم چیکار کنم.
الان واضح گفتم؟؟؟
میشه لطف کنین بگین چیکار باید بکنم. فکر نکنم کار سختی باشه
اگه درست متوجه شده باشم شما اولا برای تاریخ نیاز به یه تقویم فارسی دارین که توی همین سایت جستجو کنین پیدا میکنین.بعد شما میتونین چند تا پارامتر رو با querystring بفرستین (با & از هم جدا کنین)
ممنون. تاریخ رو که میشه با querystring فرستاد اما تعداد اتاق رو چیکار کنم؟ از همون کد که به دکمه انتخاب نسبت دادم میتونم استفاده کنم؟
دوست عزیز اگر شما نیاز به چندین ستون از GridView دارین یه کار دیگه بکنین
CommandArgument رو مقداری ندین داده تا صورت پیش فرضش که rowindex اعمال بشه
بعد توی SelectedIndexChanged به صورت زیر عمل کنین
برای به دست آوردن text یه ستون از سطرتون به شکل زیر
YourGV.Rows[e.CommandArgument].Cell[yourColumnIndex].Text
و برای بدست آوردن مقدار DropDownList به صورت زیر عمل کنین
DropDownList ddl=(DropDownList ) yourGv.Rows[e.CommandArgument].FindControls("yourDropDownListID")
حالا شما DropDownList رو دارین و میتونین مقدارش رو بدست بیارین
مرسی از اینکه جواب میدین. با این روش میتونم code هم بگیرم؟
بله دوست عزیز شما یه فیلد BoundField که visible اون رو false کنین و از طریق بالا بهش دسترسی دارین
خب تو حالت SelectedIndexChanged اصلا CommandArgument نداره!!!
ببخشید اشتباه کردم توی همون RowCommand اینکارو بکنین