zoukankan      html  css  js  c++  java
  • [置顶] Gridview中textbox列,按回车键或者上下键自动下移

    1.aspx代码,因为textbox的外面又一层table所以用到了很多children[],希望有更好的办法,真实例子粘过去就能运行

     <script src="jquery-1.4.2.min.js" type="text/javascript"></script>

    <script type="text/javascript">
            //window.onbeforeunload = function () { return "qwewqeqweqwe" };
            function keyPressed() {
                var element = null;
                element = event.srcElement;
                if (!element || element == null) element = event.target;
                if (element.type != "text") return;
                var tblGrid = document.getElementById("gdv");
                var TBID = element; //当前ID
                var CurCellID = TBID.parentElement.parentElement.parentElement.parentElement.parentElement;
                var CurCellIndex = CurCellID.cellIndex; //当前是第几列
                var CurRowIndex = CurCellID.parentElement.rowIndex; //当前是第行; 
                var rowcount = tblGrid.rows.length; //总行
                var CellCount = tblGrid.rows[CurRowIndex].cells.length; //当前行的总列数
                var TargateRow = -1; //目标行(默认值为-1)
                var TargateCell = -1; //目标列  (默认值为-1)
                var R, C;
                if (event.keyCode == 40 || event.keyCode == 13 || event.keyCode == 38) {
                    if (tblGrid.rows[CurRowIndex].cells[CurCellIndex].children[0].children[0].children[0].children[0].children[0] != null) {
                        if (tblGrid.rows[CurRowIndex].cells[CurCellIndex].children[0].children[0].children[0].children[0].children[0].id == TBID.id) {

                            //向下光标****************************************************************************
                            if (event.keyCode == 40 || event.keyCode == 13)//Buttom
                            {
                                if (CurRowIndex < rowcount - 1) {
                                    if (tblGrid.rows[CurRowIndex + 1].cells[CurCellIndex].children[0] != null) {
                                        if (tblGrid.rows[CurRowIndex + 1].cells[CurCellIndex].children[0].children[0].children[0].children[0].children[0].type == 'text') {
                                            //downvalue
                                            tblGrid.rows[CurRowIndex + 1].cells[CurCellIndex].children[0].children[0].children[0].children[0].children[0].select();
                                            return false;
                                        }
                                    }
                                }
                                else {
                                    //当在最后一行按向下光标键时,新增一行空白行
                                }
                            }

                            //向上光标(当前行必须大于第一行)******************************************************
                            if (event.keyCode == 38 && CurRowIndex > 1)//up
                            {
                                if (tblGrid.rows[CurRowIndex - 1].cells[CurCellIndex].children[0].children[0].children[0].children[0].children[0] != null) {
                                    if (tblGrid.rows[CurRowIndex - 1].cells[CurCellIndex].children[0].children[0].children[0].children[0].children[0].type == 'text') {
                                        //upvalue
                                        tblGrid.rows[CurRowIndex - 1].cells[CurCellIndex].children[0].children[0].children[0].children[0].children[0].select();
                                        return false;
                                    }
                                }
                            }
                            //END****************************************************************************

                        }
                    }
                }
            }
                   
        </script>

    <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <div>
                    <asp:GridView ID="gdv" runat="server" onkeydown='return keyPressed()' AllowPaging="True"
                        PageSize="50" AutoGenerateColumns="False" Width="100%" PagerStyle-HorizontalAlign="Center">
                        <PagerSettings Visible="False" />
                        <PagerStyle HorizontalAlign="Center" />
                        <RowStyle HorizontalAlign="Center" />
                        <Columns>
                            <asp:TemplateField HeaderText="序号">
                                <ItemTemplate>
                                    <asp:Label ID="lbl" runat="server" Text="<%# Container.DataItemIndex+1%>"></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:BoundField DataField="Name" HeaderText="测试" />
                            <asp:TemplateField HeaderText="名称">
                                <ItemTemplate>
                                    <table>
                                        <tr>
                                            <td>
                                                <asp:TextBox ID="BarCode" runat="server" Text='<%#Eval("HousesID") %>' Width="200px"
                                                    MaxLength="10"></asp:TextBox>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td>
                                                <asp:Label ID="Label1" runat="server" Text='<%#Eval("HousesID") %>'></asp:Label>
                                            </td>
                                        </tr>
                                    </table>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="编辑">
                                <ItemTemplate>
                                    <asp:LinkButton ID="LinkButton1" runat="server" OnClientClick="showDivObj(this,'gdv', 5)">编辑</asp:LinkButton>
                                </ItemTemplate>
                            </asp:TemplateField>
                        </Columns>
                    </asp:GridView>
                </div>
            </ContentTemplate>
        </asp:UpdatePanel>
        </form>

    2.cs代码

     List<SeeList> list = new List<SeeList>();
        protected void Page_Load(object sender, EventArgs e)
        {
            SeeList li = new SeeList();
            li.AutoID = 1;
            li.HousesID = 21;
            li.Name = "asd1";
            list.Add(li);
            SeeList li2 = new SeeList();
            li2.AutoID = 1;
            li2.HousesID = 22;
            li2.Name = "asd2";
            list.Add(li2);
            SeeList li3 = new SeeList();
            li3.AutoID = 1;
            li3.HousesID = 23;
            li3.Name = "asd3";
            list.Add(li3);
            SeeList li4 = new SeeList();
            li4.AutoID = 1;
            li4.HousesID = 24;
            li4.Name = "asd4";
            list.Add(li4);
            SeeList li5 = new SeeList();
            li5.AutoID = 1;
            li5.HousesID = 25;
            li5.Name = "asd5";
            list.Add(li5);
            gdv.DataSource = list;
            gdv.DataBind();
        }
        #region 实体
        public class SeeList
        {
            private int m_AutoID;

            public int AutoID
            {
                get { return m_AutoID; }
                set { m_AutoID = value; }
            }

            private int m_HousesID;

            public int HousesID
            {
                get { return m_HousesID; }
                set { m_HousesID = value; }
            }

            private string m_Name;

            public string Name
            {
                get { return m_Name; }
                set { m_Name = value; }
            }
        }
        #endregion

  • 相关阅读:
    docker出现如下错误:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
    docker 常用的命令
    postman的使用大全
    plsql连接数据库出现乱码
    mybatis从mapper接口跳转到相应的xml文件的eclipse插件
    PWC6345: There is an error in invoking javac. A full JDK (not just JRE) is required
    解决java compiler level does not match the version of the installed java project facet【转载】
    使用maven时出现Failure to transfer 错误的解决方法
    QT5 网络通讯
    c/c++ 贪吃蛇控制台版
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3038668.html
Copyright © 2011-2022 走看看