Ошибка: Ссылка на объект не установлена ​​на экземпляр объекта, при получении значения метки с помощью findcontrol, который в listview - PullRequest
0 голосов
/ 22 июня 2011

Ссылка на объект не установлена ​​на экземпляр объекта, эту ошибку я получаю, когда нажимаю кнопку ссылки. Файл привязки кода содержит приведенный ниже код для события щелчка.

protected void viewProfileLinkButton_Click(object sender, EventArgs e)  
        {  
            String emailID = ((Label)ListView1.FindControl("profileTitleLabel")).Text;  
            Response.Redirect("profilePage.aspx?e=" + emailID);  
        }  

Моя страница aspx выглядит так:

default1.aspx: 

<asp:ListView ID="ListView1" runat="server" DataSourceID="SqlDataSource1" 
                    onselectedindexchanged="ListView1_SelectedIndexChanged">
             <LayoutTemplate>
                <div ID="itemPlaceholderContainer" runat="server" style="">
                    <span runat="server" id="itemPlaceholder" />
                </div>
                <div style=" text-align:right; margin-right:100px; width:750px;">
                    <asp:DataPager ID="DataPager1" runat="server" PageSize="2">
                        <Fields>
                            <asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="True" 
                                ShowNextPageButton="False" ShowPreviousPageButton="False" />
                            <asp:NumericPagerField />
                            <asp:NextPreviousPagerField ButtonType="Button" ShowLastPageButton="True" 
                                ShowNextPageButton="False" ShowPreviousPageButton="False" />
                        </Fields>
                    </asp:DataPager>
                </div>
            </LayoutTemplate>
            <AlternatingItemTemplate>
            <hr  style=" float:left; width:552px; margin-left:17px;"/>
            <div class="center_title_bar" style="text-align:left;">
                    <asp:Label ID="nameLabel" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"first_name") %>'></asp:Label>
        </div>
        <div class="profile_box_big">
            <div class="top_profile_box_big"></div>
            <div class="center_profile_box_big">          
                 <div class="profile_img_big">
                 &nbsp;<asp:Image ID="profileImage" runat="server" Height="160px" Width="150px" />
                 </div>
                     <div class="details_big_box">
                         <div class="specifications">
                            <asp:Label ID="profileTitleLabel" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"email_id") %>' 
                                 ForeColor="#388977"></asp:Label><br />

                         <asp:LinkButton ID="viewProfileLinkButton" runat="server">View Profile</asp:LinkButton>
                     </div>                        
            </div>
            <div class="bottom_profile_box_big"></div>
            </div>                        
        </div>
            </AlternatingItemTemplate>
            <EditItemTemplate/>
            <EmptyDataTemplate>

            </EmptyDataTemplate>
            <InsertItemTemplate/>
            <ItemTemplate>
            <br />
                <div class="center_title_bar" style="text-align:left;">
                    <asp:Label ID="nameLabel" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"first_name") %>'></asp:Label>
        </div>
        <div class="profile_box_big">
            <div class="top_profile_box_big"></div>
            <div class="center_profile_box_big">          

                     <div class="details_big_box">
                         <div class="specifications">
                            <asp:Label ID="profileTitleLabel" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"email_id") %>' 
                                 ForeColor="#388977"></asp:Label><br />

                         </div>
                         <asp:LinkButton ID="viewProfileLinkButton" runat="server" OnClick="viewProfileLinkButton_Click">View Profile</asp:LinkButton>
                     </div>                        
            </div>
            <div class="bottom_profile_box_big"></div>
            </div>                        
        </div>
            </ItemTemplate>
            <SelectedItemTemplate/>
        </asp:ListView>

Пожалуйста, помогите мне, спасибо .....

Ответы [ 2 ]

1 голос
/ 22 июня 2011

Ваш html оказался смешным в этом вопросе, поэтому я не вижу, где находится ListView1.Я думаю, что это безопасно предположить, хотя это ListView.В этом случае вы не можете найти свой Label таким образом, поскольку он находится в ListViewItem, а не в самом ListView.

Что-то вроде ListView1.Items[0].FindControl("profileTitleLabel"); - это то, что вы должны делать

0 голосов
/ 22 июня 2011

Функция FindControl не смогла найти целевой элемент управления, поскольку он не содержится непосредственно в ListView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...