Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.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
C# 代码隐藏中的无法访问按钮_C#_Asp.net_Listview_Web Controls - Fatal编程技术网

C# 代码隐藏中的无法访问按钮

C# 代码隐藏中的无法访问按钮,c#,asp.net,listview,web-controls,C#,Asp.net,Listview,Web Controls,我在.aspx文件中有此按钮,并希望在codeBehind.aspx.cs文件中访问它 它在一个列表视图中,所以我假设这就是问题所在(我访问该列表视图之外的任何元素都没有问题)-只是似乎无法解决它 按钮代码(在ID为lvInstructorList的列表视图中): (二) 但这两种选择都不起作用。有什么想法/建议吗?谢谢大家! 以下是我的整个列表视图: <asp:ListView ID="lvInstructors" runat="server" AutoGenerate

我在.aspx文件中有此按钮,并希望在codeBehind.aspx.cs文件中访问它

它在一个列表视图中,所以我假设这就是问题所在(我访问该列表视图之外的任何元素都没有问题)-只是似乎无法解决它

按钮代码(在ID为lvInstructorList的列表视图中):

(二)

但这两种选择都不起作用。有什么想法/建议吗?谢谢大家!

以下是我的整个列表视图:

<asp:ListView
   ID="lvInstructors"
   runat="server"
   AutoGenerateColumns="False"
   ShowRegularGridWhenEmpty="False"
    EmptyDataText="No Sessions to Display."
    OnRowDataBound="lvDataBound"
   OnRowCommand="lvCommand"
   Visible="true">
      <LayoutTemplate>
          <div class="container" id="mainContent">
          <asp:PlaceHolder ID="itemPlaceHolder" runat="server" />
          </div>
      </LayoutTemplate>

       <ItemTemplate>
           <div class="row instructorItem">
              <div class="col-2 sessionStartTimeDiv">
                 <p class="sessionStartTime"><%#Eval("SessionStartTime")%></p>
              </div>

              <div class="col-2 instructorHeadshotDiv">
                  <asp:Image class="instructorHeadshot" runat="server" src='<%#Eval("InstructorHeadshot")%>' />
              </div>

              <div class="col-5 sessionInfoDiv">
                  <h3 class="instructorName"><%#Eval("InstructorName")%></h3>
                  <p class="sessionInfo"><%#Eval("SessionInfo")%></p>
              </div>

              <div class="col-3 checkInBtnDiv">
                 <asp:Button class="checkInBtn" ID="checkInBtn" runat="server" OnClick="CheckInBtn_Click" Text="Check-In"></asp:Button>
              </div>
            </div>
            <hr />
         </ItemTemplate>

         <EmptyDataTemplate>
            <br />
             <br />
              No Sessions to Display
          </EmptyDataTemplate>
 </asp:ListView>




没有要显示的会话
您始终可以将发送者转换回按钮

protected void checkInBtn_Click(object sender, EventArgs e)
{
    Button btn = sender as Button;
    btn.Text = "New text";
}
这两个代码段不起作用的原因是ListView中的项是基于索引的。你需要这样做

Button btn = ListView1.Items[i].FindControl("checkInBtn") as Button;

您始终可以将发件人强制转换回按钮

protected void checkInBtn_Click(object sender, EventArgs e)
{
    Button btn = sender as Button;
    btn.Text = "New text";
}
这两个代码段不起作用的原因是ListView中的项是基于索引的。你需要这样做

Button btn = ListView1.Items[i].FindControl("checkInBtn") as Button;

尝试一下,不幸没有运气。我希望我没有忽略什么。你觉得我的代码正确吗?我确信这两种方法都是100%有效的。您能显示完整的ListView项目模板吗?刚刚编辑了我的帖子以显示完整的ListView-感谢您的帮助,使用您的ListView进行了测试。我的代码片段有效。PS ListView没有行,但有项目
OnRowDataBound
>
onimdatabound
感谢@VDWWD!终于弄明白了。您的解决方案起作用了,但我需要将我的Page_Load方法中的代码包装到'if(!IsPostBack){…}'语句中。谢谢你尝试一下,不幸没有运气。我希望我没有忽略什么。你觉得我的代码正确吗?我确信这两种方法都是100%有效的。您能显示完整的ListView项目模板吗?刚刚编辑了我的帖子以显示完整的ListView-感谢您的帮助,使用您的ListView进行了测试。我的代码片段有效。PS ListView没有行,但有项目
OnRowDataBound
>
onimdatabound
感谢@VDWWD!终于弄明白了。您的解决方案起作用了,但我需要将我的Page_Load方法中的代码包装到'if(!IsPostBack){…}'语句中。非常感谢
Button btn = ListView1.Items[i].FindControl("checkInBtn") as Button;