Вам необходимо внести следующие изменения в свой код:
Переместите <asp:Panel ID="Panel3" runat="server"
за пределы DataList, чтобы он не отображался несколько раз.
Чтобы узнать идентификатор кликаемого элемента на стороне сервера, выполните следующие действия:
Добавить <asp:HiddenField
вне DataList
<asp:HiddenField ID="hidSelectedID" runat="server" />
Добавьте кнопку OnClientClick на кнопку MessageCoach, чтобы установить идентификатор в скрытом поле:
<asp:Button ID="btnMessageCoach" runat="server"
OnClientClick="javascript:document.getElementById('<%=hidSelectedID.ClientId%>').value='<%#Eval("CoachId")>';" Text="Message Coach" Style="border-radius: 5px; height: 30px; background: #32BC29; width: 180px; font-size: Medium; color: Black;"></asp:Button>
Внутри дескриптора btnSendMessage_Click вы можете получить доступ к скрытому значению поля, используя hidSelectedID.Value