2013-07-10 38 views
0

我試圖在單擊LinkButton MessageName時設置TextLabel的值。但是我沒有任何運氣。如何訪問DataList中的WebControl

我嘗試使用DataList.SelectedItem.FindControl("blah")如圖所示hereSelectedItem總是返回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

CommandName="Select"添加到您的LinkBut​​ton,然後將您的事件更改爲DataList上的SelectedIndexChanged事件。

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

謝謝!它完美的工作! =] –

相關問題