如何在DataList中访问WebControl

时间:2013-07-10 00:42:56

标签: c# asp.net datalist azure-table-storage

我在点击TextLabel MessageName时尝试设置LinkButton的值。但是,我没有运气。

我尝试使用显示hereDataList.SelectedItem.FindControl("blah"),但SelectedItem不断返回null

我也试过像this stackoverflow question这样的东西,但它也没有用。

<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;
 }

有谁知道这样做的好方法?基本上,我只希望在选择项目时显示文本。如果不是,则该字符串应保持为空/不可见。

1 个答案:

答案 0 :(得分:1)

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

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