[CLOSED] [1.0] Gridpanel and checkbox question

  1. #1

    [CLOSED] [1.0] Gridpanel and checkbox question

    In the following example, how would I hide "Send Notification" checkboxes in rows where HasEmail = false?

    <%@ Page Language="C#" %>
    <%@ Import Namespace="System.Collections.Generic" %>
    <%@ Import Namespace="System.Linq" %>
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    
    <script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
            this.Store1.DataSource = from c in Contacts
                                     select new
                                     {
                                         c.ID,
                                         c.Name,
                                         c.HasEmail,
                                         SendNotification = false
                                     };
            this.Store1.DataBind();
        }
    
        private List<Contact> Contacts
        {
            get
            {
                List<Contact> contacts = new List<Contact>();
                contacts.Add(new Contact(1, "John", true));
                contacts.Add(new Contact(2, "Bill", false));
                contacts.Add(new Contact(3, "Mark", true));
                return contacts;
            }
        }
    
        public class Contact
        {
            public Contact(int id, string name, bool hasEmail)
            {
                this.ID = id;
                this.Name = name;
                this.HasEmail = hasEmail;
            }
    
            public int ID { get; set; }
            public string Name { get; set; }
            public bool HasEmail { get; set; }
        }
    </script>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <ext:ResourceManager ID="ResourceManager1" runat="server" />
            
        <ext:Store ID="Store1" runat="server">
            <Reader>
                <ext:JsonReader IDProperty="ID">
                    <Fields>
                        <ext:RecordField Name="ID" />
                        <ext:RecordField Name="Name" />
                        <ext:RecordField Name="HasEmail" Type="Boolean" />
                        <ext:RecordField Name="SendNotification" Type="Boolean" />
                    </Fields>
                </ext:JsonReader>
            </Reader>
        </ext:Store>
        
        <ext:GridPanel ID="GridPanel1" runat="server" StoreID="Store1" Height="120" Width="220">
            <ColumnModel>
                <Columns>
                    <ext:Column Header="Name" DataIndex="Name" />
                    <ext:CheckColumn Header="Send Notification" DataIndex="SendNotification" Editable="true" />
                </Columns>
            </ColumnModel>
        </ext:GridPanel>
    
        </form>
    </body>
    </html>
    Last edited by geoffrey.mcgill; Oct 07, 2010 at 11:02 PM. Reason: [CLOSED]
  2. #2
    Hi,

    Please look at the example.

    Example
    <%@ Page Language="C#" %>
    
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    
    <script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!X.IsAjaxRequest)
            {
                Store store = this.GridPanel1.GetStore();
                store.DataSource = new object[] { 
                                             new object[] {"test1", true, true},
                                             new object[] {"test2", false, true},
                                             new object[] {"test3", true, false}
                                    };
                store.DataBind();
            }
        }
    </script>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Ext.Net Example</title>
    
        <script type="text/javascript">
            myRenderer = function(v, p, record) {
                if (record.get("hasEmail")) {
                    p.css += " x-grid3-check-col-td";
                    return '<div class="x-grid3-check-col' + (v ? "-on" : "") + " x-grid3-cc-" + this.dataIndex + '">&#160;</div>';
                }
                else {
                    return "hasEmail is false";
                }
            }
        </script>
    </head>
    <body>
        <form runat="server">
        <ext:ResourceManager runat="server" />
        <ext:GridPanel ID="GridPanel1" runat="server" AutoHeight="true">
            <Store>
                <ext:Store runat="server">
                    <Reader>
                        <ext:ArrayReader>
                            <Fields>
                                <ext:RecordField Name="test" />
                                <ext:RecordField Name="hasEmail" />
                                <ext:RecordField Name="sendNotification" />
                            </Fields>
                        </ext:ArrayReader>
                    </Reader>
                </ext:Store>
            </Store>
            <ColumnModel runat="server">
                <Columns>
                    <ext:Column Header="Test" DataIndex="test" />
                    <ext:CheckColumn Header="Test2" DataIndex="sendNotification" Editable="true">
                        <Renderer Fn="myRenderer"/>
                    </ext:CheckColumn>
                </Columns>
            </ColumnModel>
        </ext:GridPanel>
        </form>
    </body>
    </html>
  3. #3
    Worked! Thanks!

Similar Threads

  1. Question about Checkbox Selection Model in GridPanel
    By slonati_adv in forum 2.x Help
    Replies: 0
    Last Post: Jul 12, 2012, 2:19 PM
  2. [CLOSED] gridpanel question
    By seanwo in forum 1.x Legacy Premium Help
    Replies: 2
    Last Post: Jun 11, 2011, 9:09 PM
  3. Replies: 4
    Last Post: Nov 08, 2010, 11:13 AM
  4. Replies: 4
    Last Post: Oct 06, 2010, 9:08 AM
  5. Replies: 1
    Last Post: Aug 13, 2009, 9:37 AM

Tags for this Thread

Posting Permissions