我在点击TextLabel
MessageName时尝试设置LinkButton
的值。但是,我没有运气。
我尝试使用显示here的DataList.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;
}
有谁知道这样做的好方法?基本上,我只希望在选择项目时显示文本。如果不是,则该字符串应保持为空/不可见。
答案 0 :(得分:1)
将CommandName="Select"
添加到您的LinkButton,然后将您的事件更改为DataList上的SelectedIndexChanged
事件。
<asp:LinkButton CommandName="Select" ID="MessageName" Text="Some stuff" runat="server" />