简体   繁体   English

如何在数据列表中访问WebControl

[英]How To Access WebControl in a DataList

I'm trying to set a value for TextLabel when the the LinkButton MessageName is clicked. 单击LinkButton MessageName时,我试图为TextLabel设置一个值。 However I'm not having any luck. 但是我没有运气。

I tried using DataList.SelectedItem.FindControl("blah") as shown here but SelectedItem keeps returning null . 我尝试使用DataList.SelectedItem.FindControl("blah") ,如此处所示但是SelectedItem始终返回null

I also tried something like this stackoverflow question but it's not working as well. 我也尝试过类似此stackoverflow问题的方法,但效果不佳。

<asp:DataList
   ID="dlMessages"
   runat="server"
   DataSourceID="dsMessages">
<EditItemStyle Font-Names="Courier New" />
<ItemStyle BorderStyle="NotSet" />
<ItemTemplate>
  <div>
    <table>
      <tr>
        <td><asp:LinkButton ID="MessageName" Text="Some stuff" runat="server" /></td>
        <td>...</td>
      </tr>
    </table>
    <asp:Label ID="TextLabel" runat="server />
  </div>
</ItemTemplate>

 protected void DataList_OnItemCommand(object sender, EventArgs e)
 {
     if (dlMessages.SelectedItem == null)
         return;
     DagSelect.Text = ((LinkButton) dlMessages.SelectedItem.FindControl("MessageName")).Text;
     Label l = (Label) dlMessages.SelectedItem.FindControl("TextLabel");
     l.Text = DagSelect.Text;
 }

Does anyone know a good way to do this? 有人知道这样做的好方法吗? Basically, I only want the text to be displayed when the item is selected. 基本上,我只希望选择项目时显示文本。 When it's not, the string should remain empty/invisible. 如果不是,则字符串应保持为空/不可见。

CommandName="Select"添加到LinkBut​​ton,然后将事件更改为DataList上的SelectedIndexChanged事件。

<asp:LinkButton CommandName="Select" ID="MessageName" Text="Some stuff" runat="server" />

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM