How to extend ASP.NET datagrid for multi-selection of data rows.

<Columns>
 <asp:TemplateColumn>
  <HeaderTemplate>
   <asp:CheckBox id="chkAll"
      <B>onclick="javascript:SelectAllCheckboxes(this);"</B> runat="server"
    AutoPostBack="false" ToolTip="Select/Deselect All" />
  </HeaderTemplate>
  <ItemTemplate>
    <asp:CheckBox id="chkSelect" <B>onclick="javascript:HighlightRow(this);"</B>
        runat="server"<B>OnCheckedChanged= "grdEmployees_CheckedChanged"</B>
        AutoPostBack="false" />
  </ItemTemplate>
 </asp:TemplateColumn>
</Columns>

 

 

 //-------------------------------------------------------------
    // Select all the checkboxes (Hotmail style)
    //-------------------------------------------------------------
    function SelectAllCheckboxes(spanChk){
   
    // Added as ASPX uses SPAN for checkbox
    var oItem = spanChk.children;
    var theBox=oItem.item(0)
    xState=theBox.checked;   

        elm=theBox.form.elements;
        for(i=0;i<elm.length;i++)
        if(elm[i].type=="checkbox" && elm[i].id!=theBox.id)
            {
            //elm[i].click();
            if(elm[i].checked!=xState)
            elm[i].click();
            //elm[i].checked=xState;
            }
    }

    //-------------------------------------------------------------
    //----Select highlish rows when the checkboxes are selected
    //
    // Note: The colors are hardcoded, however you can use
    //       RegisterClientScript blocks methods to use Grid's
    //       ItemTemplates and SelectTemplates colors.
    //         for ex: grdEmployees.ItemStyle.BackColor OR
    //                 grdEmployees.SelectedItemStyle.BackColor
    //-------------------------------------------------------------
    function HighlightRow(chkB)    {
    var oItem = chkB.children;
    xState=oItem.item(0).checked;   
    if(xState)
        {chkB.parentElement.parentElement.style.backgroundColor='lightcoral';
           // grdEmployees.SelectedItemStyle.BackColor
         chkB.parentElement.parentElement.style.color='white';
           // grdEmployees.SelectedItemStyle.ForeColor
        }else
        {chkB.parentElement.parentElement.style.backgroundColor='white';
             //grdEmployees.ItemStyle.BackColor
         chkB.parentElement.parentElement.style.color='black';
             //grdEmployees.ItemStyle.ForeColor
        }
    }
    // -->



转自  http://www.codeproject.com/aspnet/Multi-select_Dataagrid.asp

 

posted on 2005-03-02 08:27  gwazy  阅读(505)  评论(0编辑  收藏  举报

导航