2

网。我正在尝试访问后面的代码中的 div 标签,SeparatorTemplate 这是我的 aspx 代码

<div>
    <asp:DataList ID="DataList1" runat="server">
        <ItemStyle ForeColor="#4A3C8C" BackColor="#E7E7FF"></ItemStyle>
        <HeaderTemplate>
            <table width="900px">
                <tr>
                    <td width="300px">
                        <b>Name</b>
                    </td>
                    <td width="300px">
                        <b>Account No</b>
                    </td>
                    <td width="300px">
                        <b>Company</b>
                    </td>
                </tr>
            </table>
        </HeaderTemplate>
        <ItemTemplate>
            <table width="900px">
                <tr>
                    <td align="left" width="300px">
                        <%# DataBinder.Eval(Container.DataItem, "Name")%>
                    </td>
                    <td align="left" width="300px">
                        <%# DataBinder.Eval(Container.DataItem, "AccountNo")%>
                    </td>
                    <td align="left" width="300px">
                        <%# DataBinder.Eval(Container.DataItem, "Company")%>
                    </td>
                </tr>
            </table>
        </ItemTemplate>
        <HeaderStyle Font-Bold="True" ForeColor="#F7F7F7" BackColor="#4A3C8C"></HeaderStyle>
        <SeparatorTemplate>
            <div id="divSeprator" runat="server">//This div tag i want to access in the code behind  
            <br />
            </div>

        </SeparatorTemplate>
    </asp:DataList>
</div>

我已经尝试访问this.ControlsDataList1.Controls但是这两个都不包含这个 div 我知道它在SepratorTemplate但我不知道如何从该模板访问控件,因为没有任何东西可以找到控件。

4

4 回答 4

3
protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
    // Find the div control as htmlgenericcontrol type, if found apply style
    System.Web.UI.HtmlControls.HtmlGenericControl div =  (System.Web.UI.HtmlControls.HtmlGenericControl)e.Item.FindControl("DivContent");

    if(div != null)
        div.Style.Add("border-color", "Red");

}
于 2013-09-03T12:21:48.270 回答
0

您需要从 datalist 行中找到它,如下所示。

HtmlGenericControl div = (HtmlGenericControl)yourDataList.Items[0].FindControl("dvSeparator");

.Items[]您可以传递要在其中查找 div 进行处理的数据列表项(行)的索引。

如果您想处理所有数据列表项中的 div ,那么您可以在数据列表的项数据绑定事件中执行此操作,正如@Upvote MarkAnswer 在他的回答中所建议的那样。

于 2013-09-03T12:22:17.333 回答
0
HtmlGenericControl divSeprator = (HtmlGenericControl)DataList1.Items[0].FindControl("divSeprator");

其中0是您的项目索引。

或者只是绑定一个DataList1_ItemDataBoud事件并使用:

if(e.Item.ItemType == ListItemType.Separator)
   HtmlGenericControl divSeprator = (HtmlGenericControl)e.Item.FindControl("divSeprator");
于 2013-09-03T12:51:11.577 回答
-1

你需要制作标签 runat="sever" 并给它 id

<div id="div" runat="server">

然后您可以使用它访问它

HtmlGenericControl div = HtmlGenericControl("div")
于 2013-09-03T12:19:27.523 回答