Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何引用非';t绑定到中继器_C#_Asp.net_Xml_Data Binding_Asp.net 2.0 - Fatal编程技术网

C# 如何引用非';t绑定到中继器

C# 如何引用非';t绑定到中继器,c#,asp.net,xml,data-binding,asp.net-2.0,C#,Asp.net,Xml,Data Binding,Asp.net 2.0,C#新手提问,所以如果问题很愚蠢或者答案很明显,可能是因为我不完全理解XmlDataSource的工作原理 给定以下XML文件“super-simple XML.XML”(格式化以节省一些空间) 如何将id从每个XML条目拉入类或变量 这里的想法是我在一个中继器中显示项目。我添加了复选框,因此我可以选中任何条目,然后按Submit。当它发回时,我想将选中的条目存储在我创建的类中。获取和非常简单,因为它们在中继器中有ID,我可以参考。但是XML中的id属性从未被调用,所以我不知道如何访问它。当我传

C#新手提问,所以如果问题很愚蠢或者答案很明显,可能是因为我不完全理解
XmlDataSource
的工作原理

给定以下XML文件“super-simple XML.XML”(格式化以节省一些空间)

如何将
id
从每个XML条目拉入类或变量


这里的想法是我在一个中继器中显示项目。我添加了复选框,因此我可以选中任何
条目,然后按Submit。当它发回时,我想将选中的条目存储在我创建的类中。获取
非常简单,因为它们在中继器中有ID,我可以参考。但是XML中的
id
属性从未被调用,所以我不知道如何访问它。当我传递数据时,我想在类中引用
id
。这可能吗?我该怎么做

也许这有帮助,问题可能出在错误的xml结构中


使用XPath@语法获取属性:

<%# XPath("one/@id") %>
这是另一种选择(我最初发布的原因是我对您的OnItemCommand事件的名称感到困惑,并认为您需要在数据绑定时使用这些值):

在您的
中:

<asp:Button runat="server" ID="btnGetID" Text="Get ID" CommandName="GetID" />
<asp:Button runat="server" ID="btnGetID" OnClick="btnGetID_Click" Text="Get ID" />

为了澄清您的问题,您是在尝试在“Page_Load”C#方法中提取id属性的值,还是在尝试在标记中提取id值,例如,就像您在使用“一”和“二”一样?但是,最终任何方法都有效@肖恩谈到了后一种情况,这似乎是可行的。我只是假设,如果页面正在访问XML文件,我就可以访问它,而不必将它绑定到其他东西。
<%# XPath("one/@id") %>
<asp:HiddenField runat="server" ID="hidID" Value='<%# XPath("one/@id") %>' />
<asp:Button runat="server" ID="btnGetID" Text="Get ID" CommandName="GetID" />
protected void SuperSimple_ItemDataBound(object sender, RepeaterCommandEventArgs e)
{
    //check the item type, headers won't contain the control
    if (e.CommandName == "GetID")
    {
        //find the control and put it's value into a variable
        HiddenField hidID = (HiddenField)e.Item.FindControl("hidID");
        string strID = hidID.Value;
    }
}
<asp:Button runat="server" ID="btnGetID" OnClick="btnGetID_Click" Text="Get ID" />
protected void btnGetID_Click(object sender, e as EventArgs)
{
    //sender is the button
    Button btnGetID = (Button)sender;
    //the button's parent control is the RepeaterItem
    RepeaterItem theItem = (RepeaterItem)sender.Parent;
    //find the hidden field in the RepeaterItem
    HiddenField hidID = (HiddenField)theItem.FindControl("hidID");
    //assign to variable
    string strID = hidID.Value;
}