加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 访问listview的edititemtemplate中的控件

发布时间:2020-12-16 07:33:32 所属栏目:asp.Net 来源:网络整理
导读:我正在使用listview控件.默认情况下,我使用编辑按钮显示itemtemplate.按下编辑按钮后,列表视图将切换到edititemtemplate.我需要根据正在编辑的项目填充edititemtemplate中的一个控件 – 我尝试在ItemEditing事件中访问控件(通过FindControl)(以及几乎所有其
我正在使用listview控件.默认情况下,我使用编辑按钮显示itemtemplate.按下编辑按钮后,列表视图将切换到edititemtemplate.我需要根据正在编辑的项目填充edititemtemplate中的一个控件 – 我尝试在ItemEditing事件中访问控件(通过FindControl)(以及几乎所有其他事件),但是控件只是’似乎存在.我可以在itemtemplate ok中访问控件,但不能访问edititemtemplate.

任何人都可以告诉我如何访问listview的edititemtemplate中的控件,以及我应该从哪个事件中执行此操作?

编辑
我正在尝试使用以下方法访问控件:

protected void UnitsLV_ItemEditing(object sender,ListViewEditEventArgs e)
{
    ListViewItem item = UnitsLV.Items[e.NewEditIndex];
    ListBox tempLB = (ListBox)e.item.FindControl("ListBox3");
}

我也尝试过ItemDataBound和ItemCreated.

listview声明是:

<asp:Content ID="Content1" ContentPlaceHolderID="ColumnA" runat="server">
    <asp:Panel ID="Panel1" runat="server">
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <asp:Panel ID="SummaryPnl" runat="server">
                    <asp:ListView ID="UnitsLV" runat="server" DataSourceID="DataLDS" DataKeyNames="u_uid"
                        InsertItemPosition="LastItem" OnItemInserting="UnitsLV_ItemInserting" OnItemDataBound="UnitsLV_ItemDataBound"
                        OnItemCreated="UnitsLV_ItemCreated" onitemediting="UnitsLV_ItemEditing">
                        <ItemTemplate>
                            <tr class="rowA">
                                <td>
                                    <asp:Label runat="server" ID="UnitIDLbl" Text='<%# Eval("u_uid")%>'></asp:Label>
                                </td>
                                <td>
                                    <%# Eval("u_Title")%>
                                </td>
                                <td>
                                    <asp:LinkButton ID="EditBtn" runat="server" CommandName="Edit" CommandArgument='<%#Eval("u_uid") %>'
                                    Text="Edit" />
                                </td>
                                <td>
                                    <asp:LinkButton ID="DeleteBtn" runat="server" CommandName="Delete" CommandArgument='<%#Eval("u_uid") %>'
                                    Text="Delete" />
                                </td>
                            </tr>
                        </ItemTemplate>
                        <InsertItemTemplate>
                            <tr class="rowB">
                                <td>
                                    <br />
                                    &nbsp;
                                </td>
                                <td>
                                    <br />
                                    <asp:TextBox ID="TitleTB" runat="server" Text='<% #Bind("u_Title")%>'></asp:TextBox>
                                </td>
                                <td>
                                    <br />
                                    <asp:ListBox ID="ListBox3" runat="server"></asp:ListBox>
                                    <asp:ListBox ID="ToBeDeletedLB" runat="server"></asp:ListBox>
                                </td>
                                <td>
                                    <asp:LinkButton ID="InsertBtn" runat="server" CommandName="Insert" Text="Insert" />
                                </td>
                                <td>
                                    <asp:LinkButton ID="CancelBtn" runat="server" CommandName="Cancel" Text="Cancel" />
                                </td>
                            </tr>
                        </InsertItemTemplate>
                        <EditItemTemplate>
                            <tr class="rowB">
                                <td>
                                    <br />
                                    <asp:Label runat="server" ID="UnitIDLbl" Text='<%# Bind("u_uid")%>'></asp:Label>
                                </td>
                                <td>
                                    <br />
                                    <asp:TextBox ID="TitleTB" runat="server" Text='<% #Bind("u_Title")%>'></asp:TextBox>
                                </td>
                                <td>
                                    <br />
                                    <asp:ListBox ID="ListBox3" runat="server"></asp:ListBox>
                                    <asp:ListBox ID="ToBeDeletedLB" runat="server"></asp:ListBox>
                                </td>
                                <td>
                                    <asp:LinkButton ID="UpdateBtn" runat="server" CommandName="Update" Text="Update" />
                                </td>
                                <td>
                                    <asp:LinkButton ID="LinkButton2" runat="server" CommandName="Cancel" Text="Cancel" />
                                </td>
                            </tr>
                        </EditItemTemplate>
                        <LayoutTemplate>
                            <table id="Table2" runat="server" width="100%">
                                <tr id="Tr1" runat="server">
                                    <td id="Td1" runat="server">
                                        <table id="itemPlaceholderContainer" runat="server" border="0" style="" width="100%">
                                            <tr id="itemPlaceholder" runat="server"></tr>
                                        </table>
                                    </td>
                                </tr>
                                <tr id="Tr2" runat="server">
                                    <td id="Td2" runat="server" style=""></td>
                                </tr>
                            </table>
                        </LayoutTemplate>
                    </asp:ListView>
                </asp:Panel>
            </ContentTemplate>
        </asp:UpdatePanel>
    </asp:Panel>
</asp:Content>

编辑:
我使用类似于下面的代码迭代列表视图中的所有控件,并且控件仍然不可见. ItemEditing事件是否在显示编辑模板之前触发?如果是这样,我可以使用什么事件来访问编辑模板控件?

foreach (Control child in control.Controls)
{
   Control result = Find(child,id);
   if (result != null)
   {
      return result;
   }
}

**编辑:**
我可以在listview的ItemCreated事件中访问edititemtemplate中的控件,但是没有一个没有内容(我假设数据还没有绑定),所以我无法获得我需要做的键值查找以获取填充控件所需的数据.

解决方法

我已经找到了一种方法来做我需要做的事情,尽管我对此并不十分满意.

protected void UnitsLV_ItemDataBound(object sender,ListViewItemEventArgs e)
{
    if (UnitsLV.EditIndex > -1)
    {
        // Controls within the edititemtemplate are available via e.Item.FindControl("controlname")
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读