PDA

View Full Version : CommandArgument



shahram176
پنج شنبه 18 اردیبهشت 1393, 23:57 عصر
سلام
من برای حذف یه دکمه گذاشتم برای گرفتن id از این کد استفاده کردم Button b = (Button)sender;
int aid =int.Parse( b.CommandArgument);
ولی خطا زیر را میگیره این کد را در جای دیگه استفاده کردم درست کار میکنه
118793

mjt10063
جمعه 19 اردیبهشت 1393, 10:42 صبح
این پیام خطایی که من میبینم باید از فرمت داده ات باشه که با هم همخوانی ندارند
مثلا بخوای string را با int مقایسه کنی
از این کد استفاده کن برای متغییر b
Convert.ToInt32(//متغییر)

shahram176
جمعه 19 اردیبهشت 1393, 10:55 صبح
کدتون را گذاشتم ولی همون خطا را میده

fakhravari
جمعه 19 اردیبهشت 1393, 10:56 صبح
شما text بگیرید ببنید مقدار داخلی چیه!

shahram176
جمعه 19 اردیبهشت 1393, 11:01 صبح
شما text بگیرید ببنید مقدار داخلی چیه!
میشه توضیح بدید من نفهمیدم باید چیکار کنم؟

mjt10063
جمعه 19 اردیبهشت 1393, 11:15 صبح
جای int aid
بنویس string aid
بعد جواب رو بگیر ببین چی میشه

shahram176
جمعه 19 اردیبهشت 1393, 11:27 صبح
من گریدویو را با یه دسنور select بایندش کردم
دکمم بیرون گرید ویو هست برای بایند کردن CommandArgument='<%#Eval("cuid") %>'همین کافیه یا باید دستور select هم براش بنویسم؟

salmah
جمعه 19 اردیبهشت 1393, 14:59 عصر
aidباید identity yes باشه

meisam12
جمعه 19 اردیبهشت 1393, 16:59 عصر
من گریدویو را با یه دسنور select بایندش کردم
دکمم بیرون گرید ویو هست برای بایند کردن CommandArgument='<%#Eval("cuid") %>'همین کافیه یا باید دستور select هم براش بنویسم؟

فیلد cuid مقدارش در دیتابیس چیست یعنی چه مقدارهایی در دیتابیس داری؟

shahram176
شنبه 20 اردیبهشت 1393, 18:44 عصر
کلید جدول منه که از نوع int تعریف کردم

meisam12
شنبه 20 اردیبهشت 1393, 19:25 عصر
کلید جدول منه که از نوع int تعریف کردم

شما اون خطی که ازت ایراد می گیره فکر می کنم
1:شما چرا از متغیر b استفاده کردید باید از e استفاده می کردید
2: به خاطر این است که CommandArgument را به رشته تبدیل نکردید در واقع شما به جای اینکه رشته را به عدد تبدیل کنید شی CommandArgument را به عدد تبدیل کردید.

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


int aid =int.Parse(e.CommandArgument.ToString());

shahram176
شنبه 20 اردیبهشت 1393, 19:35 عصر
الان اینطوری نوشتم ایراد میگیره
Button e = (Button)sender;
int aid = int.Parse(e.CommandArgument.ToString());

meisam12
شنبه 20 اردیبهشت 1393, 19:43 عصر
شما نباید از Button استفاده کنید(Button e = (Button)sender;)
eای که من گفتم در پارامتر تابع مربوطه اگر نگاه کنید از نوع EventArgs می باشد و در واقع متغیر e تعریف شده است خطایی که به شما داده است به این خاطر است که دوباره در یک حوزه متغیری دارید تعریف می کنید که وجود دارد شما نیازی به تعریف Button e = (Button)sender; ندارید

shahram176
شنبه 20 اردیبهشت 1393, 19:47 عصر
اصلاحش کردم ولی از CommandArgument ایراد گرفت

meisam12
شنبه 20 اردیبهشت 1393, 19:51 عصر
شما از گرید ویو استفاده می کنید برای حذف؟
شما کجا مقدار cuid را Bind می کنید در گرید یا در جای دیگه؟

meisam12
شنبه 20 اردیبهشت 1393, 19:57 عصر
اگر از گرید استفاده می کنید دکمه حذف را در خود گرید بگذارید.

< asp:GridView id="grdUsers" runat="server" OnRowCommand="grdUsers_RowCommand" ...>
<Columns>
.
.
.
<TemplateField>
<asp:LinkButton ID="lbDelete" runat="server" CommandName="doDelete" CommandArgument='<%#Eval("cuid") %>' Text="حذف" />
</TemplateField>
</Columns>
</asp:GridView>


بعد در رویدا RoeCommand گریدت حذف را تعریف کن


protected void grdUsers_RowCommand(object sender, GridViewCommandEventArgs e)
{
int userID = Convert.ToInt32(e.CommandArgument.ToString());
switch (e.CommandName.ToString())
{
case "doDelete":
{
//delete commands
break;
}
}
}

shahram176
شنبه 20 اردیبهشت 1393, 20:56 عصر
<script>
function SelectAllCheckboxesGridView1(chk) {
$('#<%=GridView1.ClientID %>').find("input:checkbox").each
(function () {
if (this != chk) {
this.checked = chk.checked;
}
});
}
</script>
این کد برای تیک زدن همه چک باکس هاست آیا جاییش را باید تغییر بدم؟

meisam12
یک شنبه 21 اردیبهشت 1393, 00:01 صبح
خیر این کدها فقط برای انتخاب چک باکس است.

shahram176
یک شنبه 21 اردیبهشت 1393, 16:03 عصر
من میخوام دکمه حذف بیرون از گرید باشه قبلا از این روش رفتم جواب میداد ولی نمیدونم چرا الان جواب نمیده

meisam12
یک شنبه 21 اردیبهشت 1393, 17:22 عصر
شما اگر می خواهید دکمه حذف بیرون از گرید باشه بهتر است برای هر سطر گرید یک چک باکس بذاری و اگر هر سطری که تیک خورده بود آن را حذف کنید.

shahram176
یک شنبه 21 اردیبهشت 1393, 23:09 عصر
شما اگر می خواهید دکمه حذف بیرون از گرید باشه بهتر است برای هر سطر گرید یک چک باکس بذاری و اگر هر سطری که تیک خورده بود آن را حذف کنید.

خب من همین کار را کردم ولی جواب نمیگیرم اگه میشه یه نمونه کد بذارید

meisam12
دوشنبه 22 اردیبهشت 1393, 10:16 صبح
این هم یک نمونه کد حذف سطرهای انتخاب شده با چک باکس

meisam12
دوشنبه 22 اردیبهشت 1393, 17:16 عصر
نمونه کد حذف پیام ها

meisam12
پنج شنبه 25 اردیبهشت 1393, 00:45 صبح
تو این پروژه چک باکس ها همه زیر هم هستند

rezadana
پنج شنبه 25 اردیبهشت 1393, 11:42 صبح
دوست عزیز این لینک هم به دردت میخوره. نگاهی کن بهش.
http://how2learnasp.net/article.aspx?code=f05c6d6f-4350-4efb-84b5-6e7dca3976c4

ـــــــــــــــــــــــــ ـــــــــــــــــــــــ
www.rezalynda.rzb.ir

meisam12
پنج شنبه 25 اردیبهشت 1393, 23:31 عصر
اینم یک پروژه دیگه که هدر چک باکس هم یک چک باکس دارد