سلام
من یه گرید ویو دارم که داخل item template یه دیتا لیست قرار دادم
حالا میخوام id سطری که کاربر کلیک میکنه رو بذست بیارم
چون دیتالیست دارم و روی اون کلیک میکنم id دیتالیست رو میده ولی من id گیرید رو میخام
ممنون میشم از راهنماییتون
منظورتون رو متوجه نشدم
داخل گرید میخواهید دیتالیسشت بزارید
کاربر روی چی کلیک میکنه ؟
<asp:GridView ID="GVcustomer" runat="server" AllowPaging="True" DataKeyNames="Id" AutoGenerateColumns="False" CssClass="table table-striped table-bordered table-hover dataTable" OnRowCommand="GVcustomer_RowCommand" OnPageIndexChanging="GVcustomer_PageIndexChanging" PageSize="15" OnRowDataBound="GVcustomer_RowDataBound"> <Columns> <asp:BoundField DataField="Id" > </asp:BoundField> <asp:BoundField DataField="SId" HeaderText="کد مشترک " /> <asp:BoundField DataField="FirstName" HeaderText="نام " /> <asp:BoundField DataField="LastName" HeaderText=" نام خانوادگی" /> <asp:BoundField DataField="OstanTitle" HeaderText=" استان" /> <asp:BoundField DataField="Title" HeaderText=" شهر" /> <asp:TemplateField HeaderText="سوالات"> <ItemTemplate> <asp:LinkButton ID="LinkButton10" runat="server" class="blue" CommandArgument='<%#Eval("Id") %>' CommandName="DoQue">نمایش سوالات</asp:LinkButton> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="عملیات"> <ItemTemplate> <asp:DataList ID="DataList1" runat="server" RepeatDirection="Horizontal" OnItemCommand="DataList1_ItemCommand" > <ItemTemplate> <asp:LinkButton ID="LinkButton5" class="pink" CommandArgument='<%#Eval("Id") %>' CommandName="select" OnClientClick="return confirm('آیا مطمئن هستید ؟')" runat="server"><%#Eval("Title") %></asp:LinkButton> </ItemTemplate> </asp:DataList> </ItemTemplate> </asp:TemplateField> </Columns> <FooterStyle CssClass="tableFooter" /> <PagerSettings NextPageText="بعدی" PreviousPageText="قبلی" /> <PagerStyle CssClass="dataTables_paginate paging_bootstrap pagination" HorizontalAlign="Center" VerticalAlign="Middle" /> </asp:GridView>
بله استاد داخل گیرید یه دیتالیست هست که یه سری دکمه رو میاره من id دکمه ر و با command argument میگیرم اما id سطری از گیرید کهکلیک کرده رو نمیتونم بدست بیارم
دکمه داخل گرید هست یا دیتالیست ؟
اگر داخل دیتالیست باشه باید از دیتاسورس گرید پر کنید
دکمه داخل دیتالیست هست پر کردم مشکلی نداره دیتا رو میاره و با item template مدیریت هم میکنم
فقط جایی از کد نویسی میخوام id سطر گرید رو داشته باشم اینو مشکل دارم استاد
شما باید در CommandArgument در دکمه در دیتالیست id او سطر از گرید را قرار دهید تا در رویداد item_Command در Datalist اون id دریافت بشه
استاد تو کدم نگاه کنید همین کارو کردم ولی id خود دیتالیست رو میده نه گیرید
چک کردید هم نام نباشند ؟
شاید در جدولی که دیتالیست رو پر میکنید کلید اون هم نامش id باشه
خروجی اسنه استاد اون قسمت عملیات که شامل در انتظار تماس و اینا هست کلا دیتالیست هست و id دارن دکمه ها که با توجه به ای دی عملیات توی item command انحام میشه
اما من میخام توی همون item command آی دی سطری که کلیک شده از گیرید رو داشته باشم
بله استاد همنام هستند ولی تغییر هم دادم تفاوتی نداره
به احتمال زیاد مشکل همین همنام بودن هست
نه متاسفانه استاد
متاسفانه دیگه راه حلی به ذهنم نمیرسه
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e) { if (e.CommandName == "select") { switch (e.CommandArgument.ToString()) { case "2": { int ID = Convert.ToInt32(e.CommandArgument.ToString());
این کدم هست id دقیقا ای دی دیتالیست رو برمیگردونه درستم هست
من میخام id گیرید رو هم داشته باشم
پاسخ:
توی رویداد row databound مذبوط به گیرید ویو که دیتالیست را پرمیکردم آی دی ستون صفر رو داخل متغییر نگه داشتم و بعد کوئری زیرو نوشتم
int ids = Convert.ToInt32(e.Row.Cells[0].Text); var lable = (from i in mobin.LablePoll where i.Visible == true select new { newid=i.Id ,ids=ids,Title=i.Title}).ToList(); DataList gvChild = (DataList)e.Row.FindControl("DataList1"); gvChild.DataSource = lable; gvChild.DataBind();
یعنی فیلد ids را خودم اضافه کردم
توی صفحه design هم داخل دیتالیست commandargument رو اینجوری تعریف کردم
CommandArgument='<%#Eval("newid") + ";" +Eval("ids")%>'
بعد توی رویداد rowdatabound دیتالیست آرگیومنت رو گرفتم و split کردم حالا هم id گیرید بدست اومد هم id دیتالیست.
اینم کد
string IDs = (e.CommandArgument.ToString()); string[] text = IDs.Split(';'); int IDcustomer = int.Parse(text[1].ToString()); int argid= int.Parse(text[0].ToString());
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)