【问题标题】:Deleting items from datagrid (xml)从数据网格中删除项目 (xml)
【发布时间】:2023-03-20 13:28:02
【问题描述】:

我有一个 datagrid buttoncolumn 作为我的 xml 节点的删除按钮。 元素只是显示在一个 boundcolumn 中,因此会显示名称。

每个生成的项目都有一个唯一的 id(每次都有一个 id+++)。 我的问题是,当我单击绑定列中的一个按钮时,如何删除一个项目(具有该特定 ID 的整个元素节点)?

<root>
   <element id="0">
      <name>One</name>
   </element>
   <element id="1">
       <name>Two</name>
   </element>
</root>

 protected void dg_DeleteCommand(object sender, DataGridCommandEventArgs e)
    {
        XmlFunctions.Remove(index);
    }/*dg_DeleteCommand*/

(其他类的函数,我所有的xml方法都写在这里)

public static void Remove(string index)
{
XmlDocument XMLDoc = new XmlDocument();
XMLDoc.Load(XMLFile);
XPathNavigator nav = XMLDoc.CreateNavigator();

var node = nav.SelectSingleNode("/test/one[@id='" +???+ "']");
node.DeleteSelf();
XMLDoc.Save(XMLFile);
}

编辑:添加数据网格

    <asp:View ID="viewDelete" runat="server">
        <asp:DataGrid ID="dgDelete runat="server" AutoGenerateColumns="False" OnDeleteCommand="dg_DeleteCommand">
            <Columns>
                <asp:BoundColumn DataField="name" HeaderText="names" />
                <asp:ButtonColumn ButtonType="PushButton" Text="Delete" CommandName="Delete" ></asp:ButtonColumn>
            </Columns>
        </asp:DataGrid>  
    </asp:View>

【问题讨论】:

  • “/test/one...”中的测试是什么?
  • 抱歉,应该是 /root/element

标签: c# asp.net xml datagrid


【解决方案1】:
protected void dg_DeleteCommand(object sender, DataGridCommandEventArgs e)     
{
         XmlFunctions.Remove(grid selected value);     
}

public static void Remove(string itemValue) 
{
   XDocument doc = XDocument.Load("xmlfile.xml");
   doc.Descendants("test")
         .Where(p=>p.Attribute("id") != null 
                   && p.Attribute("id").Value == itemValue)
         .SingleOrDefault().Remove();
}

【讨论】:

  • dataGridView1 到底是什么?似乎无法获取 .SelectedCells 或相关索引。用 datagrid 更新我的主要帖子。只能选择 selecteditem 和 selecteditemstyle。最好的问候
【解决方案2】:
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load("yourxmlfile.xml");

XmlNode xmlnode = xmldoc.DocumentElement.ChildNodes.Item(indice);
xmlnode.ParentNode.RemoveChild(xmlnode);

xmldoc.Save("yourxmlfile.xml");

我这样做了,它成功了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-06
    • 2021-01-29
    • 1970-01-01
    • 1970-01-01
    • 2012-06-06
    相关资源
    最近更新 更多