asp.net DataList内部的Datalist问题与C#解释

时间:2014-01-21 18:32:20

标签: c# asp.net datalist

我需要在另一个DataList内使用DataList。它对我来说很好,但是当我尝试用代码做后面的事情时,它就不存在于C#中。这是代码:

...

<asp:DataList ID="DataListDziennik" runat="server"
    DataSourceID="SqlDataSourcePrzedmioty">
    <ItemTemplate>
        <asp:Label ID="LabelPrzedmiot" runat="server" Text='<%# Eval("przedmiot") %>' />

        ...

            <asp:DataList ID="DataListOceny" runat="server" 
                DataSourceID="SqlDataSourceOceny" 
                RepeatDirection="Horizontal" 
                OnItemCommand="DataListOceny_ItemCommandOceny"
                OnEditCommand="DataListOceny_EditCommandOceny">

                <EditItemTemplate>

                    <asp:TextBox ID="TextBoxOcena" runat="server" Text='<%# Bind("lista") %>' />
                    <td><asp:Button ID="ButtonZapisz" CommandName="Update" runat="server" Text="Zapisz" /></td>

                </EditItemTemplate>

                <ItemTemplate>

                    <asp:TextBox Width="20" ID="TextBoxOcena" ReadOnly="true" Text='<%# Eval("lista") %>' runat="server"></asp:TextBox>
                    <td><asp:Button ID="ButtonEdytuj" CommandName="Edit" runat="server" Text="Edytuj" /></td>

                </ItemTemplate>
            </asp:DataList>
        </td>
    </ItemTemplate>
</asp:DataList>

当我在后面的代码中写这个:

        protected void DataListOceny_EditCommand(object source, DataListCommandEventArgs e)
    {
        DataListOceny.EditItemIndex = e.Item.ItemIndex;

        DataListOceny.DataBind();
    }

... Visual Studio告诉我DataListOceny does not exist in current content。我只是希望能够在点击&#34;编辑&#34;之后在DataListOceny上编辑项目。按钮,它可以放在网站的任何地方。你知道解决这个问题的方法吗?

1 个答案:

答案 0 :(得分:2)

因为DataListOceny是另一个控件内部的控件,所以你必须通过执行以下操作来引用它:

DataList DataListOceny = (DataList)e.Item.FindControl("DataListOceny");

一旦这样做,就可以使用DataListOceny变量。希望这会有所帮助。