zoukankan      html  css  js  c++  java
  • (较难)字典的用法

    <ext:Grid ID="Grid1" EnableColumnLines="true" Title="表单明细" OnSort="Grid1_Sort" AllowSorting="true" SortField="NodeSymbol" OnAfterEdit="Grid1_AfterEdit"
    EnableAfterEditEvent="true" PageSize="20" ShowBorder="true" BoxFlex="1" DataKeyNames="AID" BoxConfigAlign="Stretch" AllowCellEditing="true"
    runat="server" OnPreRowDataBound="Grid1_PreRowDataBound" OnRowCommand="Grid1_RowCommand">
    <Toolbars>
    <ext:Toolbar runat="server">
    <Items>
    <ext:TextBox runat="server" Label="关键字" ID="KeyWord" LabelAlign="Right" Width="500"/>
    <ext:ToolbarFill ID="ToolbarFill1" runat="server"/>
    <ext:Button ID="Search" Text="查询" runat="server" OnClick="Search_Click"/>
    <ext:Button ID="AddEquip" Text="新建" runat="server" OnClientClick="AddEquip_Click();return 0;"/>

    </Items>
    </ext:Toolbar>
    </Toolbars>
    <Columns>
    <ext:RowNumberField EnablePagingNumber="true" Width="50" HeaderText="序号"/>
    <ext:BoundField Width="300" SortField="DocumentName" DataField="DocumentName" HeaderText="文档名称" Hidden="true" />
    <ext:RenderField DataField="Field" ColumnID="Field" HeaderText="字段名称" Width="150" >
    <Editor>
    <ext:TextBox ID="Field" runat="server"></ext:TextBox>
    </Editor>
    </ext:RenderField>
    <ext:RenderField DataField="EnglishName" ColumnID="EnglishName" HeaderText="英文名称" Width="250" >
    <Editor>
    <ext:TextBox ID="EnglishName" runat="server"></ext:TextBox>
    </Editor>

    </ext:RenderField>
    <ext:RenderField DataField="Attribute" ColumnID="Attribute" HeaderText="绑定字段">

    <Editor>
    <ext:DropDownList runat="server" ID="DDlAttribute" DataTextField="ColName" DataValueField="ColName" />
    </Editor>
    </ext:RenderField>

    <ext:RenderField DataField="FieldType" ColumnID="FieldType" HeaderText="字段类型">
    <Editor>
    <ext:DropDownList runat="server" ID="FieldType">
    <ext:ListItem Text="文本框" Value="文本框" />
    <ext:ListItem Text="下拉列表" Value="下拉列表" />
    <ext:ListItem Text="标签" Value="标签" />
    <ext:ListItem Text="固定表格" Value="固定表格" />
    <ext:ListItem Text="数字框" Value="数字框" />
    <ext:ListItem Text="日期框" Value="日期框" />
    <ext:ListItem Text="单选列表" Value="单选列表" />
    <ext:ListItem Text="多选列表" Value="多选列表" />
    <ext:ListItem Text="超文本" Value="超文本" />
    <ext:ListItem Text="图片" Value="图片" />
    </ext:DropDownList>
    </Editor>
    </ext:RenderField>

    <ext:RenderField DataField="Rindex" ColumnID="Rindex" HeaderText="行号">
    <Editor>
    <ext:NumberBox NoDecimal="true" NoNegative="true" runat="server" ID="Rindex" />
    </Editor>
    </ext:RenderField>

    <ext:RenderField DataField="Cindex" ColumnID="Cindex" HeaderText="列号" >
    <Editor>
    <ext:NumberBox NoDecimal="true" NoNegative="true" runat="server" ID="Cindex" />
    </Editor>
    </ext:RenderField>
    <ext:LinkButtonField Width="50" HeaderText="保存" ConfirmTarget="Top" CommandName="Save" IconUrl="~/res/icon/system_save.gif" ColumnID="Save" Hidden="true" />
    <ext:LinkButtonField Width="50" HeaderText="编辑" ConfirmTarget="Top" CommandName="Edit" IconUrl="~/res/icon/bullet_edit.png" ColumnID="Edit" Hidden="true" />
    <ext:LinkButtonField Width="50" HeaderText="删除" ConfirmTarget="Top" CommandName="Delete" IconUrl="~/res/icon/bullet_cross.png" ColumnID="Delete"
    ConfirmText = "您确定要删除本项目组信息吗?删除后将不可恢复!" />
    </Columns>

    </ext:Grid>

    /// <summary>
    /// 表格编辑后事件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void Grid1_AfterEdit(object sender, GridAfterEditEventArgs e)
    {
    // 数据绑定时,会清空选中的行和选中的单元格
    string[] scs = Grid1.SelectedCell;
    Save();
    //BindGrid();
    // ReSelected(scs);

    }

    /// <summary>
    /// 保存数据
    /// </summary>
    private void Save()
    {
    //修改的数据
    Dictionary<int, Dictionary<string, object>> modifiedDict = Grid1.GetModifiedDict();

    foreach (int rowIndex in modifiedDict.Keys)
    {
    string ID = Grid1.DataKeys[rowIndex][0].ToString();
    Dictionary<string, object> rowDict = modifiedDict[rowIndex];
    UpdateDataRow(rowDict, ID);

    }

    /// <summary>
    /// 修改数据库中的行
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="rowDict">字典</param>
    /// <param name="ID">ID</param>
    /// <returns></returns>
    private void UpdateDataRow(Dictionary<string, object> rowDict, string ID)
    {


    foreach (KeyValuePair<string, object> kvp in rowDict)
    {
      int x;
      string v;

      try
      {
        x = int.Parse(kvp.Value.ToString());
        v = x.ToString();
      }
      catch
      {
        try
        {

          v = "'" + kvp.Value.ToString() + "'";
        }
        catch
        {
          v = "";
        }
      }

      XElement xp = new XElement("root",
      new XElement("Type", "ExecSql")
      , new XElement("Sql", "Update tb_Report_Template set " + kvp.Key + " = " + v + " where AID= " + ID));
      Govaze.SQLServerDAL.Factory.getDataXmlDAL().ExecProc(xp.ToString(), "DataXmlRec");

      Grid1.UpdateTemplateFields();
    }

    }


    ////新增的数据
    //List<Dictionary<string, object>> NewAddDict = Grid1.GetNewAddedList();

    //for (int i = 0; i < NewAddDict.Count; i++)
    //{
    // Dictionary<string, object> rowDict = NewAddDict[i];
    // AddDataRow(rowDict);
    //}

    }

  • 相关阅读:
    新购服务器流程
    nginx代理证书使用方法
    一键部署lnmp脚本
    mysql主从库配置读写分离以及备份
    Linux入门教程(更新完毕)
    Git 工作流程
    Git远程操作
    常用Git命令
    js数组去重
    Sublime Text设置快捷键让html文件在浏览器打开
  • 原文地址:https://www.cnblogs.com/sanshengshitouhua/p/14353279.html
Copyright © 2011-2022 走看看