页面上有个ultrawebgrid 控件和一些按钮,现在客户要求用键盘来操作
按钮和ultrawebgrid 都设置了tabIndex
要的是用tab键时ultrawebgrid 要获得焦点,并且要把ultrawebgrid 的第一行(默认)选中,并且可以用键盘的上下键来选择数据,现在的问题是 我已经做到了用tab键切换时选中了ultrawebgrid 的一行数据,但是此时tabIndex已经移到了下一个按钮上了,无法用上下键来选择数据,不知道描述清楚了没,请大家帮忙!<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %><%@ Register Assembly="Infragistics35.WebUI.UltraWebGrid.v9.2, Version=9.2.20092.1003, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb"
    Namespace="Infragistics.WebUI.UltraWebGrid" TagPrefix="igtbl" %>
<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>
<!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>    <script type="text/javascript">
    var =false;    //var o=document;
    function MyOnKeyUp()
    {
        var s=window.event;//window.event.srcElement        
        if()
        {
            if(s.keyCode=="9")
            {
            
                var grid=igtbl_getGridById("<%=UltraWebGrid1.ClientID %>");
                var seRow = igtbl_getRowById("UltraWebGrid1_r_0");
                //grid.focus(); 
                var id="UltraWebGrid1_r_0";
                //seRow.setSelected(true);               
                //seRow.activate();
                igtbl_setActiveRow("UltraWebGrid1",seRow.getFirstRow());
                //seRow.getCell(0).beginEdit() ; 
                //var rowname = id.substring(0, id.lastIndexOf('_'));                //rowname = rowname+ '_0';                 //igtbl_setActiveCell("UltraWebGrid1",igtbl_getElementById(rowname));
                //igtbl_setActiveRow("UltraWebGrid1",seRow.getFirstRow());
                //var cell = row.getCell(1); //obtain object of current cell to be edited                //cell.beginEdit(); //start current cell in edit mode
                //cell.endEdit();
                //igtbl_getRowById
                //alert("bbgfffff");
                =false;
                //alert(grid.tabIndexPage);
                //return;
            }
        }        
        if(s.srcElement.tabIndex=="0")
        {
            =true;
        }
    }
    
    window.document.onkeydown=MyOnKeyUp;
    
    function KeyDown(gId,rId,kCode)
    {
        if(kCode==9)
        {
            //window.event.srcElement.tabIndex+=1;
        }
        else if(kCode==13)
        {
            //alert("queding");
        }
        else
        {
            //alert("qita");
        }
    }
    </script></head>
<body>
    <form id="form1" runat="server">
    <div>
        <input type="button" id="btn1" value="ssss" tabindex="1" />
        <igtbl:UltraWebGrid ID="UltraWebGrid1" TabIndex="4" runat="server" Height="200px"
            Width="325px">
            <Bands>
                <igtbl:UltraGridBand>
                    <AddNewRow Visible="NotSet" View="NotSet">
                    </AddNewRow>
                </igtbl:UltraGridBand>
            </Bands>
            <DisplayLayout Name="UltraWebGrid1" AllowColSizingDefault="Free" AllowColumnMovingDefault="OnServer"
                AllowDeleteDefault="Yes" AllowSortingDefault="OnClient" AllowUpdateDefault="Yes"
                BorderCollapseDefault="Separate" CellClickActionDefault="RowSelect" HeaderClickActionDefault="SortMulti"
                RowHeightDefault="20px" RowSelectorsDefault="No" SelectTypeRowDefault="Extended"
                StationaryMargins="Header" StationaryMarginsOutlookGroupBy="True" TableLayout="Fixed"
                Version="4.00" ViewType="OutlookGroupBy">
                <FrameStyle BackColor="Window" BorderColor="InactiveCaption" BorderStyle="Solid"
                    BorderWidth="1px" Font-Names="Microsoft Sans Serif" Font-Size="8.25pt" Height="200px"
                    Width="325px">
                </FrameStyle>
                <Pager MinimumPagesForDisplay="2">
                    <PagerStyle BackColor="LightGray" BorderStyle="Solid" BorderWidth="1px">
                        <BorderDetails ColorLeft="White" ColorTop="White" WidthLeft="1px" WidthTop="1px" />
                    </PagerStyle>
                </Pager>
                <EditCellStyleDefault BorderStyle="None" BorderWidth="0px">
                </EditCellStyleDefault>
                <FooterStyleDefault BackColor="LightGray" BorderStyle="Solid" BorderWidth="1px">
                    <BorderDetails ColorLeft="White" ColorTop="White" WidthLeft="1px" WidthTop="1px" />
                </FooterStyleDefault>
                <HeaderStyleDefault BackColor="LightGray" BorderStyle="Solid" HorizontalAlign="Left">
                    <BorderDetails ColorLeft="White" ColorTop="White" WidthLeft="1px" WidthTop="1px" />
                </HeaderStyleDefault>
                <RowStyleDefault BackColor="Window" BorderColor="Silver" BorderStyle="Solid" BorderWidth="1px"
                    Font-Names="Microsoft Sans Serif" Font-Size="8.25pt">
                    <Padding Left="3px" />
                    <BorderDetails ColorLeft="Window" ColorTop="Window" />
                </RowStyleDefault>
                <GroupByRowStyleDefault BackColor="Control" BorderColor="Window">
                </GroupByRowStyleDefault>
                <GroupByBox>
                    <BoxStyle BackColor="ActiveBorder" BorderColor="Window">
                    </BoxStyle>
                </GroupByBox>
                <AddNewBox Hidden="False">
                    <BoxStyle BackColor="Window" BorderColor="InactiveCaption" BorderStyle="Solid" BorderWidth="1px">
                        <BorderDetails ColorLeft="White" ColorTop="White" WidthLeft="1px" WidthTop="1px" />
                    </BoxStyle>
                </AddNewBox>
                <ActivationObject BorderColor="" BorderWidth="">
                </ActivationObject>
                <FilterOptionsDefault>
                    <FilterDropDownStyle BackColor="White" BorderColor="Silver" BorderStyle="Solid" BorderWidth="1px"
                        CustomRules="overflow:auto;" Font-Names="Verdana,Arial,Helvetica,sans-serif"
                        Font-Size="11px" Height="300px" Width="200px">
                        <Padding Left="2px" />
                    </FilterDropDownStyle>
                    <FilterHighlightRowStyle BackColor="#151C55" ForeColor="White">
                    </FilterHighlightRowStyle>
                    <FilterOperandDropDownStyle BackColor="White" BorderColor="Silver" BorderStyle="Solid"
                        BorderWidth="1px" CustomRules="overflow:auto;" Font-Names="Verdana,Arial,Helvetica,sans-serif"
                        Font-Size="11px">
                        <Padding Left="2px" />
                    </FilterOperandDropDownStyle>
                </FilterOptionsDefault>
            </DisplayLayout>
        </igtbl:UltraWebGrid>
        <input type="button" id="Button1" value="ssss" tabindex="5" />
    </div>
    </form>
</body>
</html>cs代码
protected void Page_Load(object sender, EventArgs e)
    {
        Response.Buffer = false; Response.Expires = 0; Response.CacheControl = "no-cache";
        if (!IsPostBack)
        {
            
           UltraWebGrid1.DataSource = GetSource();
        this.UltraWebGrid1.DataBind();
        }
    }
DataTable GetSource()
    {
        DataTable dt = new DataTable();
        for (int i = 0; i < 2; i++)
        {
            DataColumn c = new DataColumn();
            dt.Columns.Add(c);
        }
        for (int i = 0; i <2; i++)
        {
            DataRow dr = dt.NewRow();
            dt.Rows.Add(dr);
            for (int k = 0; k < 2; k++)
            {
                dr[k] = (k*i).ToString();
            }
        }
        return dt;
    }    

解决方案 »

  1.   

    DataTable GetSource()
        {
            DataTable dt = new DataTable();
            for (int i = 0; i < 2; i++)
            {
                DataColumn c = new DataColumn();
                dt.Columns.Add(c);
            }
            for (int i = 0; i <2; i++)
            {
                DataRow dr = dt.NewRow();
                dt.Rows.Add(dr);
                for (int k = 0; k < 2; k++)
                {
                    dr[k] = (k*i).ToString();
                }
            }
            return dt;
        }    
      

  2.   


     <script type="text/javascript">
        var =false;    //var o=document;
        function MyOnKeyUp()
        {
            var s=window.event;//window.event.srcElement        
            if()
            {
                if(s.keyCode=="9")
                {
                
                    var grid=igtbl_getGridById("<%=UltraWebGrid1.ClientID %>");
                    var seRow = igtbl_getRowById("UltraWebGrid1_r_0");
                    //grid.focus(); 
                    var id="UltraWebGrid1_r_0";
                    //seRow.setSelected(true);               
                    //seRow.activate();
                    igtbl_setActiveRow("UltraWebGrid1",seRow.getFirstRow());
                    //seRow.getCell(0).beginEdit() ; 
                    //var rowname = id.substring(0, id.lastIndexOf('_'));                //rowname = rowname+ '_0';                 //igtbl_setActiveCell("UltraWebGrid1",igtbl_getElementById(rowname));
                    //igtbl_setActiveRow("UltraWebGrid1",seRow.getFirstRow());
                    //var cell = row.getCell(1); //obtain object of current cell to be edited                //cell.beginEdit(); //start current cell in edit mode
                    //cell.endEdit();
                    //igtbl_getRowById
                    //alert("bbgfffff");
                    =false;
                    //alert(grid.tabIndexPage);
                    //return;
                }
            }        
            if(s.srcElement.tabIndex=="0")
            {
                =true;
            }
        }
        
        window.document.onkeydown=MyOnKeyUp;
      

  3.   

    who kan help me,myself???