zoukankan      html  css  js  c++  java
  • ASP.NET控件GridView的使用& Xml操作注意事项

    更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢!

     
    文章主要内容:
    ——一、Asp.net工程:数据控件GridView的使用& Xml操作注意事项;
    —二、常见代码:一些常见代码分析;
    —三、网站部署:部署站点的主要流程;
     

    一、Asp.net工程

     
     

    使用asp.net 数据控件  gridview显示数据

    数据源采用 xml(好处是结构规范、便于快速开发,绕开权限控制等)

    Button采用imgbutton,没有使用GridView自带的文字linkbutton,美观,易于美化。

    用VS2010打开Tool栏编辑器,如下图:

    1、添加新网页

    2、拖动gridview到页面中

    3、前段代码自动生成

    打开VS2010,展开Solution查看文件结构:

    主要资源:

    1、图片

    2、数据

    3、页面

    4、类文件

    —二、常见代码

    GridView 控件的HTML代码:

    asp:GridView ID="GridView1" runat="server">

            </asp:GridView>

    GridView控件事件添加,同时生成后台代码,如下图:

    前端代码如下:

    <asp:GridView ID="gv_xml" runat="server" AutoGenerateColumns="False"   
                OnRowCancelingEdit="gv_xml_RowCancelingEdit"   
                OnRowUpdating="gv_xml_RowUpdating"  
                OnRowEditing="gv_xml_RowEditing"   
                OnRowDeleting="gv_xml_RowDeleting"
                CellPadding="4" ForeColor="#333333" 
                GridLines="None" 
                >
                <Columns>
                <asp:TemplateField HeaderText="域名">  
                        <ItemTemplate>  
                            <%# DataBinder.Eval(Container.DataItem,"Domain") %>
                        </ItemTemplate>  
                        <EditItemTemplate>  
                            <asp:TextBox ID="Txtbox0" runat="server" Text='<%#  DataBinder.Eval(Container.DataItem,"Domain") %>'></asp:TextBox>  
                        </EditItemTemplate>  
                    </asp:TemplateField>  
                    <asp:TemplateField HeaderText="FAT1">  
                        <ItemTemplate>  
                            <%# DataBinder.Eval(Container.DataItem, "FAT1")%>  
                        </ItemTemplate>  
                        <EditItemTemplate>  
                            <asp:TextBox ID="Txtbox1" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"FAT1") %>'></asp:TextBox>  
                        </EditItemTemplate>  
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="FAT8">  
                        <ItemTemplate>  
                            <%# DataBinder.Eval(Container.DataItem, "FAT8")%>  
                        </ItemTemplate>  
                        <EditItemTemplate>  
                            <asp:TextBox ID="Txtbox2" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"FAT8") %>'></asp:TextBox>  
                        </EditItemTemplate>  
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="FAT21">  
                        <ItemTemplate>  
                            <%# DataBinder.Eval(Container.DataItem, "FAT21")%>  
                        </ItemTemplate>  
                        <EditItemTemplate>  
                            <asp:TextBox ID="Txtbox3" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"FAT21") %>'></asp:TextBox>  
                        </EditItemTemplate>  
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="FAT22">  
                        <ItemTemplate>  
                            <%# DataBinder.Eval(Container.DataItem, "FAT22")%>  
                        </ItemTemplate>  
                        <EditItemTemplate>  
                            <asp:TextBox ID="Txtbox4" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"FAT22") %>'></asp:TextBox>  
                        </EditItemTemplate>  
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="FAT23">  
                        <ItemTemplate>  
                            <%# DataBinder.Eval(Container.DataItem, "FAT23")%>  
                        </ItemTemplate>  
                        <EditItemTemplate>  
                            <asp:TextBox ID="Txtbox5" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"FAT23") %>'></asp:TextBox>  
                        </EditItemTemplate>  
                    </asp:TemplateField>                
                    <asp:TemplateField>  
                        <ItemTemplate>  
                            <asp:ImageButton ID="Button2" runat="server"  Text="Edit" ImageUrl="~/Imgs/btnEdit.png" CommandName="Edit" />  
                          <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Imgs/btnDelete.png" CommandName="Delete" />  
                        </ItemTemplate>  
                        <EditItemTemplate>  
                            <asp:ImageButton ID="Button1" runat="server"  Text="Update"  ImageUrl="~/Imgs/btnUpdate.png" CommandName="Update" />  
                            <asp:ImageButton ID="Button3" runat="server"  Text="Cancel" ImageUrl="~/Imgs/btnCancel.png" CommandName="Cancel" />  
                        </EditItemTemplate>  
                    </asp:TemplateField>  
                </Columns>
                <AlternatingRowStyle Wrap="False" BackColor="White" />
                <EditRowStyle BackColor="#2461BF" />
                <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
                <RowStyle BackColor="#EFF3FB" />
                <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
                <SortedAscendingCellStyle BackColor="#F5F7FB" />
                <SortedAscendingHeaderStyle BackColor="#6D95E1" />
                <SortedDescendingCellStyle BackColor="#E9EBEF" />
                <SortedDescendingHeaderStyle BackColor="#4870BE" />
                </asp:GridView>

    后台对应的代码如下:

    protected void gv_xml_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
            {
                gv_xml.EditIndex = -1;
                Databind();  
            }
    
            protected void gv_xml_RowEditing(object sender, GridViewEditEventArgs e)
            {
                gv_xml.EditIndex = e.NewEditIndex;
                Databind();  
            }
    
            protected void gv_xml_RowUpdating(object sender, GridViewUpdateEventArgs e)
            {
                string Xmlpath = String.Format("{0}\APIData\FatEnvData.xml", RootPath);
                GridViewRow row = gv_xml.Rows[e.RowIndex]; //获得当前行
    
                int numCell = row.Cells.Count;  //共几列单元格(包含Edit和Delete 2列) 
                int currentRow = row.DataItemIndex; //对应DataSet对应的行索引 
    
                DataSet ds = new DataSet();
                ds.ReadXml(Xmlpath);
                DataRow dr;
    
                dr = ds.Tables[0].Rows[row.DataItemIndex];
    
                string[] str = null;  //此数组定义表的列名 
                str = new string[]{ "Domain", "FAT1", "FAT8", "FAT21", 
                                 "FAT22", "FAT23"};
    
                int j = 0;
    
                TextBox myTextBox = null;
                //从第1列开始, 后2列是Edit和Delete 
                for (int i = 0; i < numCell-1; i++)
                {
                    myTextBox = row.Cells[i].FindControl("Txtbox"+i) as TextBox;
                    
                    //string cText = ((TextBox)row.Cells[i].Controls[0]).Text;
    
                    dr[str[j]] = myTextBox.Text;
    
                    j++;
                }
    
                ds.WriteXml(Xmlpath);  //将修改写入Table.xml 
    
                gv_xml.EditIndex = -1;
                Databind();  
            }
    
            protected void gv_xml_RowDeleting(object sender, GridViewDeleteEventArgs e)
            {
                string Xmlpath = String.Format("{0}\APIData\FatEnvData.xml", RootPath);
    
                GridViewRow row = this.gv_xml.Rows[e.RowIndex];
    
                int curr = row.RowIndex;
                DataSet ds = new DataSet();
                ds.ReadXml(Xmlpath);
    
                DataRow dr = ds.Tables[0].Rows[curr];
                dr.Delete();
                ds.WriteXml(Xmlpath);
    
                Databind();  
            }

    页面加载时,数据绑定:

    protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                    Databind();
            }
    
            //xml 数据绑定
            public void Databind()
            {
                var query = GetXMLData();
    
                gv_xml.DataSource = query;
                gv_xml.DataBind();
            }
    
            //查询xml数据
            private List<LinqXmlGridViewControl> GetXMLData()
            {
                var xDoc = XDocument.Load(Server.MapPath("~/APIData/FatEnvData.xml"));
                var query = (from LinqXmlGridViewControl in xDoc.Descendants("Server")
                             select new LinqXmlGridViewControl()
                             {
                                 Domain = LinqXmlGridViewControl.Element("Domain").Value,
                                 FAT1 = LinqXmlGridViewControl.Element("FAT1").Value,
                                 FAT8 = LinqXmlGridViewControl.Element("FAT8").Value,
                                 FAT21 = LinqXmlGridViewControl.Element("FAT21").Value,
                                 FAT22 = LinqXmlGridViewControl.Element("FAT22").Value,
                                 FAT23 = LinqXmlGridViewControl.Element("FAT23").Value
                             }).ToList();
                return query;
            }

    —三、网站部署

    代码完成后,需要部署在IIS,打开控制面板-〉控制面板项目-〉管理工具:

    在网站上,点击鼠标右键选择添加网站,如下图:

    应用程序池默认选择 .Net4.0 ,否则IIS网站无法启动:

    物理路径选择,本地网站文件存放地址。Ip选择 本地机器ip,默认端口80

    主机名如果有域名可以设置,没有则为空。

    部署完成

    如下图,此处可以更换pool;路径重新指定;

    公司目前用工具自动配置,如果出问题可以登录服务器进行手工修改(网站连接配置,跳转指向,数据库连接串,代码版本查看等等)

     作者原创技术文章,转载请注明出处

  • 相关阅读:
    P5468 [NOI2019]回家路线
    P1919 【模板】A*B Problem升级版(FFT快速傅里叶)
    P4390 [BOI2007]Mokia 摩基亚
    P4234 最小差值生成树
    P5459 [BJOI2016]回转寿司
    P2173 [ZJOI2012]网络
    P2163 [SHOI2007]园丁的烦恼
    P3826 [NOI2017]蔬菜
    P3327 [SDOI2015]约数个数和
    P1829 [国家集训队]Crash的数字表格 / JZPTAB
  • 原文地址:https://www.cnblogs.com/zishi/p/6729478.html
Copyright © 2011-2022 走看看