如何在网格外事件中获取网格视图中的单元格控件和数据?

编程入门 行业动态 更新时间:2024-10-24 14:24:03
本文介绍了如何在网格外事件中获取网格视图中的单元格控件和数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一个gridview,其中有2列(templateColumn),第一个是复选框,第二个是复选框列表.该网格的行是从数据库创建的.每个复选框列表可以具有0到4个复选框,具体取决于数据库中的关系记录. 现在我的问题是,我有一个对象列表,每个对象都有0到4个相关记录.对于每个主要对象,必须检查其在网格中的相等性,然后在其关系记录中,应检查其在复选框列表中的相等性. 但是我无法访问网格外事件的行. 有我的代码:

i have a gridview that has 2 column (templateColumn)the frist is checkbox and the second in checkboxlist. this grid''s row is created from database. each checkboxlist can has 0 til 4 cheboxes depends on relation records in database. now my broblem is that ,i have a listof object that each o them has 0 til 4 relational records. for each main object , it''s equal in grid must checked, and fore its relational records their equals in checkboxlist colum should checked. but i can;t access to rows out of grid event. there is my code :

<div id="divMenuCapabilities" dir="rtl" align=right runat="server" style=" height:300px; overflow:scroll;"> <asp:GridView ID="grid1" runat="server" AutoGenerateColumns=false OnRowDataBound="grid1_OnRowDataBound" > <Columns> <asp:TemplateField HeaderText="عنوان فرم"> <ItemTemplate> <asp:CheckBox ID="CheckBox1" runat="server" text='<%#Eval("MenuItemName")%>' /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="قابلیت های فرم" > <ItemTemplate> <asp:CheckBoxList runat="server" ID="cblCap" RepeatDirection= "Horizontal" /> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> </div>

private void FillGrid1() { ENTMenuItemEOList menuItemEoList = new ENTMenuItemEOList(); menuItemEoList.LoadAll(); ENTCapabilityEOList capabilityEoList = new ENTCapabilityEOList(); capabilityEoList.Load(); foreach (ENTMenuItemEO menuItemEo in menuItemEoList) { List<ENTCapabilityEO> entCapabilityEos = new List<ENTCapabilityEO>(); entCapabilityEos = capabilityEoList.Where(cap => cap.ENTMenuItemId == menuItemEo.ID).ToList(); menuItemEo.EntCapabilityEOListObject = entCapabilityEos; } grid1.DataSource = menuItemEoList; grid1.DataBind(); }

protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string roleIdStr = Request.QueryString["id"]; int roleId = 0; if (!string.IsNullOrEmpty(roleIdStr)) { roleId = Convert.ToInt32(roleIdStr); } FillGrid1(); populateObjects(roleId); } }

private void populateObjects(int id) { ENTRoleCapabilityEOList roleCapList = new ENTRoleCapabilityEOList(); roleCapList.LoadByRoleId(1); SetRoleCapToLvRoleCap(roleCapList);}

现在我想根据以下方法中的listof对象在两个列中选中一些复选框.但我不知道该怎么做.我无法在网格外事件中获得单元格控件. 请帮帮我.

now i want checked some checkboxes in both colums according to a listof object in below method. but i dont know how to do this. i can''t get cell control''s in out of grid event. please help me.

private void SetRoleCapToLvRoleCap(ENTRoleCapabilityEOList selectedRoleCapList) { List<ENTMenuItemEO> menuItemEoList = (List<ENTMenuItemEO>) grid1.DataSource; foreach (ENTRoleCapabilityEO entRoleCapabilityEo in selectedRoleCapList) { ENTCapabilityEO capabilityEo = new ENTCapabilityEO(); capabilityEo.Load(entRoleCapabilityEo.ENTCapabilityId); }

推荐答案

为了迭代而不是使用GridView事件,您可以使用此代码 Hi, In order to iterate instead of using GridView events you can use this code foreach (GridViewRow grv in grid1.Rows) { CheckBox CheckBox1=grv.FindControl("CheckBox1") as CheckBox; CheckBoxList cblCap = grv.FindControl("cblCap") as CheckBoxList; }

现在,您可以应用验证逻辑,因为现在可以使用所有用户输入数据. 希望这会有所帮助.

Now you can apply your validation logics as all user input data is now available for you to use. Hope this will help.

更多推荐

如何在网格外事件中获取网格视图中的单元格控件和数据?

本文发布于:2023-11-23 03:27:06,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1619910.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:网格   外事   视图   控件   单元格

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!