Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.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
Vb.net 如何基于Listview ItemDataBound值显示面板控件_Vb.net_Listview_Asp.net 4.0_Web Controls - Fatal编程技术网

Vb.net 如何基于Listview ItemDataBound值显示面板控件

Vb.net 如何基于Listview ItemDataBound值显示面板控件,vb.net,listview,asp.net-4.0,web-controls,Vb.net,Listview,Asp.net 4.0,Web Controls,使用asp.NET4.0。我有一个带有列表视图的页面。我正在尝试基于当前ItemBound值而不是ItemBound事件在listview itemtemplate中显示某个预定义面板 例如,如果dataItem.Item(“DataGapDesc”)值等于“A”,则显示面板pnlPanelA将有2个文本框。如果dataItem.Item(“DataGapDesc”)值等于“B”,则显示面板pnlPanelB,其中将有3个文本框和一个复选框,依此类推 以下是我在aspx中的当前列表视图:

使用asp.NET4.0。我有一个带有列表视图的页面。我正在尝试基于当前ItemBound值而不是ItemBound事件在listview itemtemplate中显示某个预定义面板

例如,如果dataItem.Item(“DataGapDesc”)值等于“A”,则显示面板pnlPanelA将有2个文本框。如果dataItem.Item(“DataGapDesc”)值等于“B”,则显示面板pnlPanelB,其中将有3个文本框和一个复选框,依此类推

以下是我在aspx中的当前列表视图:

     <asp:ListView ID="EmployeesGroupedByDataField" runat="server" DataSourceID="sqlDataGapsForSelectedemployees" OnItemBound="employeesGroupedByDataField_ItemDataBound">
                <LayoutTemplate>
                    <table id="Table1" runat="server" class="table1">
                        <tr id="Tr1" runat="server">
                            <td id="Td1" runat="server">
                                <table ID="itemPlaceholderContainer" runat="server" >
                                    <tr id="Tr2" runat="server">
                                        <th id="Th1" runat="server" style="text-align:left"><u>
                                            employee</u></th>
                                        <th id="Th2" runat="server" style="width:5%;text-align:center"><u>
                                            # Items Missing</u></th>
                                        <th id="Th3" runat="server"><u>
                                            employee DOB</u></th>
                                        <th id="Th4" runat="server"><u>
                                            Primary Physican</u></th>
                                        <th id="Th6" runat="server" style="width:10%;text-align:center;border-right: thin solid #000000"><u>
                                            Missing Data Item</u></th>
                                        <th id="Th5" runat="server" style="text-align: center;"><u>
                                            Last Known Visit/Service</u></th>                                
                                        <th id="Th7" runat="server" style="text-align: center;"><u>
                                            Data Entry</u></th>      
                                    </tr>
                                    <tr ID="itemPlaceholder" runat="server">
                                    </tr>
                                </table>
                            </td>
                        </tr>
                        <tr id="Tr3" runat="server">
                            <td id="Td2" runat="server" style="">
                            </td>
                        </tr>
                    </table>
                </LayoutTemplate>
                <ItemTemplate>
                    <%# AddGroupingRowIfemployeeHasChanged()%>               
                            <td style="text-align: right;border-right: thin solid #000000"><%# Eval("DataGapDesc")%>&nbsp</td>
                            <td style="text-align: left;">
                                <%#Eval("ServiceDate")%> 
                                &nbsp-&nbsp
                                <%# Eval("PlaceOfService")%>
                            </td>  
                            <td>
                                <%# DisplaySpecificPanel()%>                                   
                            </td>                                                                                                                                                        
                        </tr>
                </ItemTemplate>
            </asp:ListView>

受雇者
#丢失的项目
雇员出生日期
初级理疗师
缺少数据项
最后已知的访问/服务
数据输入
 
 - 
我正在调用函数DisplaySpecificPanel(),这就是我“尝试”执行此行为的地方。VB中的该函数:

公共函数DisplaySpecificPanel()作为字符串

    Dim currentEmployeeNameValue As String = Trim(Eval("Employee").ToString().Substring(0, (Eval("Employee").ToString.Length) - 10).ToString())

    If currentEmployeeNameValue = "DOE, JOHN" Then
        'Panel1.Visible = True
        Return String.Format("<asp:Button ID=""Button1"" runat=""server"" Text=""Button"" />")
    Else
        Return String.Format("<asp:TextBox ID=""TextBox1"" runat=""server""></asp:TextBox>")

    End If
Dim currentEmployeeNameValue As String=Trim(Eval(“Employee”).ToString().Substring(0,(Eval(“Employee”).ToString.Length)-10.ToString())
如果currentEmployeeNameValue=“DOE,JOHN”,则
'Panel1.Visible=True
返回字符串。格式(“”)
其他的
返回字符串。格式(“”)
如果结束
端函数

现在,我只是尝试通过添加一个文本框或按钮来实现这个功能,但从长远来看,我希望添加面板。。。 嗯,我的函数被正确调用,但是控件没有被放置在呈现的listview上


有什么想法吗?我正在做这件事,对吗?非常感谢…

从另一个来源找到了这个。这是有道理的,但我并不完全精通aspx页面的生命周期或行为

您将无法使用字符串呈现服务器端控件 控件的表示形式。这种方法适用于普通HTML 控制。但是,服务器端控件需要经过渲染 仅设置的文本属性时不会调用的机制 控件。更好的选择是只保留一个面板 项模板和在itemdatabound中动态添加控件 基于条件的事件。然后,您可以检查是否存在某些条件 true,然后相应地添加文本框或按钮。如果有太多 许多控件,您也可以使用UserControls。但是,动态控制 将不会跨页面回发保留,您需要添加 如果你不想处理这一切 创建机制,您可以只保留两个独立的面板和 根据某些条件更新可见性

在Listview中:

<td>                                                                       
    <asp:Panel runat="server" ID="pnlOne" Visible='<%# CanShowFirstPanel()%>'>
        <asp:Button ID="Button1" runat="server" Text="Button" />
    </asp:Panel>
    <asp:Panel runat="server" ID="pnlTwo" Visible='<%# CanShowSecondPanel()%>'>
        <asp:TextBox runat="server" ID="TextBox1" />
    </asp:Panel>
</td>
Public Function CanShowFirstPanel() As Boolean
       'condition to check 
       Return True
   End Function
   Public Function CanShowSecondPanel() As Boolean
       'condition to check 
       Return False
   End Function