2013-07-10 4 views
0

LinkButton MessageName을 클릭하면 TextLabel에 대한 값을 설정하려고합니다. 그러나 나는 어떤 운도 가지지 않고있다.데이터 목록에서 WebControl에 액세스하는 방법

그림과 같이 DataList.SelectedItem.FindControl("blah")을 사용해 보았지만 SelectedItemnull을 계속 반환했습니다.

나는 또한 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

LinkButton에 CommandName="Select"을 추가 한 다음 이벤트를 DataList의 SelectedIndexChanged 이벤트로 변경하십시오.

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

감사합니다. 그것은 완벽하게 작동합니다! =] –

관련 문제