PDA

View Full Version : تفاوت OnCommand با OnClick در چیست



sg.programmer
چهارشنبه 21 دی 1390, 22:13 عصر
سلام
تفاوت OnCommand با OnClick در وLinkButton چیست?
تفاوت OnClick در Button وLinkButton چیه؟ ایا عمکرد متفاوتی دارند؟

mehdi3000
چهارشنبه 21 دی 1390, 22:49 عصر
سلام
جواب سوال اولتون رو نمی دونم
ولی پیرامون سوال دوم عملکرد این ایونت در این دو نوع باتن هیچ فرقی با هم نداره

mahmood_4246
چهارشنبه 21 دی 1390, 22:56 عصر
onCommand رویدادی هستش که موقع فراخونی از دو خاصیت CommandArgumant و CommandName استفاده میکنه .. حالا کجا استقاده میشه .. به طور مثال تو گرید : وقتی که ما چند نوع دکمه داریم و براساس کد میخواییم به ردیف دسترسی داشته باشیم .. از طریق این خاصیت میاییم تصمیمی گیری میکنیم وقتی کلیک شده رو یکی از لینک باتون ها
ولی OnClick برای وقتی که ما دکمه ای داریم که دارای نام هست و ما میخواییم وقتی روش کلیک شد کاری کنیم .. توجه داشته باشید که دکمه دارای کدی یگانه تو صفحه هست

sg.programmer
چهارشنبه 21 دی 1390, 23:27 عصر
تشکر mahmood_4246 - یه خورده مبهم بود برای من


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

میشه بیشتر توضیح بدید
چند نوع دکمه = چند تا دکمه منظور تون چند تا از لینک باتون
ردیف چه کاربردی داره؟
تصمیمی گیری = یعنی بصورت Array = یعنی میشه فهمید در یک OnCommand کدام کنترل LinkButton فراخوانی شده؟


دکمه دارای کدی یگانه تو صفحه هست

یک مثال ارائه میکنید؟

mahmood_4246
چهارشنبه 21 دی 1390, 23:39 عصر
وقتی شما تو گرید یه دکمه از طریق TemplateFiled یه دکمه تعریف میکنید باید وقتی روش کلیک شد یه کاری براتون انجام بده .. خوب چطور ؟

<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server"
CommandArgument='<%# Eval("ID") %>' CommandName="Remove"
Text='<%# Eval("Title") %>'></asp:LinkButton>
</ItemTemplate>
تو مثال بالا همون طور که میبنی ما به CommandArgument و CommandName مقدار بایند کردیم .. ولی حالا چه طوری به این مقادیر دسترسی داشته باشیم ؟

<asp:GridView ID="GridView1" runat="server""
AutoGenerateColumns="False"
DataSourceID="ObjectDataSource1
onrowcommand="gvList_RowCommand" Width="80%
>
تو گرید بالا ما از رویداد onrowcommand استفاده کردیم .. کارش اینه که به کنترل هایی که 2 تا خاصیت بالا رو دارن دسترسی داشته باشه

protected void gvList_RowCommand(object sender, GridViewCommandEventArgs e)
{
switch (e.CommandName.ToString())
{
case "Edit":
{
EditRecord(Convert.ToInt32(e.CommandArgument));

}
break;
case "Remove":
DeleteRecord(Convert.ToInt32(e.CommandArgument));
break;
default: break;

}
}
protected void DeleteRecord(int id)
{
System.Threading.Thread.Sleep(TimeSpan.FromSeconds (2));
imgOk.Visible = true;
lblMessage2.Visible = true;
CommentManager.DeleteComment(id);

GridView1.DataBind();
//GridView2.DataBind();
}

این طوری تونستیم به مقدار تو Argumant دسترسی پیدا کرده باشیم .. یکی از بهترین راه های برای دسترسی به مقایر

mahmood_4246
چهارشنبه 21 دی 1390, 23:42 عصر
برای رویداد OnClick زمانی که دکمه ای تو صفحه داریم و میخواییم کاری برامون انجام بده

<asp:Button ID="btnShow" runat="server" "
onclick="btnShowNotChecked_Click" Text="پیام های تایید نشده" Width="150px" />