[英]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"
添加到LinkButton,然后将事件更改为DataList上的SelectedIndexChanged
事件。
<asp:LinkButton CommandName="Select" ID="MessageName" Text="Some stuff" runat="server" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.