Member 11936990 Ответов: 1

Я хочу, чтобы смайлики отображались в текстовом поле, когда я выбираю один из многих


я использую смайлики для своего приложения чата, и я хочу, чтобы они отображались в моем текстовом поле, когда я нажимаю на один из смайликов, которые у меня есть. которые вставляются из базы данных.

на самом деле я попробовал код на событии команды item.. как показано ниже
но проблема заключается в том, как отобразить эти специальные изображения emojis в текстовом поле.

Что я уже пробовал:

<div class="send-message">
    <div class="input-group">
        <asp:TextBox ID="txttosnd" class="form-control" runat="server" placeholder="Type your message"></asp:TextBox>
        <asp:Panel ID="panemoji" class="form-control" runat="server">
            <asp:ImageButton ID="img" runat="server" ImageUrl="~/images/emoji_icon.jpeg" OnClick="img_Click" />
        </asp:Panel>
        <asp:Panel style="left:100px" ID="panemoj" runat="server" Visible="false">
             <asp:DataList ID="dlemojrep"  runat="server" RepeatDirection="Horizontal" OnItemCommand="dlemojrep_ItemCommand" RepeatColumns="4" RepeatLayout="Table">
                <ItemTemplate>
                    <asp:ImageButton runat="server" Style="margin: 0px 5px 5px 0px;" Width="30px" Height="30px" CommandArgument='<%#Eval("emojies_id") %>' CommandName="imgemoji" class="img-responsive" ID="imgbtn" alt="user" ImageUrl='<%# "~/ImagePage.aspx?emojiid=" + System.Convert.ToString(Eval("emojies_id")) %>' />
                </ItemTemplate>
            </asp:DataList>
        </asp:Panel>
        <span class="input-group-btn">
            <asp:Button ID="btnsndmsg" runat="server" CssClass="btn btn-default" OnClick="btnsndmsg_Click" Text="Send" />
        </span>
    </div>
</div>

rotected void dlemojrep_ItemCommand(object source, DataListCommandEventArgs e)
    {
        int USER_ID = Convert.ToInt32(Session["USERID"]);
        if (USER_ID != 0)
        {
            if (e.CommandName == "imgemoji")
            {
                touid = Convert.ToInt32(e.CommandArgument);
                oluserid.Value = touid.ToString();
                SqlConnection conn = new SqlConnection(c.connStr);
                conn.Open();
                
                SqlCommand cmd = new SqlCommand("select emo_pic from tbl_emoji where emojies_id= '" + touid + "'", conn);
                int chatreqacc = Convert.ToInt32(cmd.ExecuteScalar());
                if (chatreqacc != 0)
                {
                    GetMessages();
                    tblchat.Visible = true;
                }
                else
                {
                    ScriptManager.RegisterStartupScript(this, GetType(), "showalert", "alert('Sorry! you can not send message, your caht request has been declined');", true);
                    tblchat.Visible = false;
                }
            }
        }
    }

CHill60

И что вы пытались сделать для достижения этой цели?

Member 11936990

на самом деле я попробовал код на событии команды item.. как показано ниже

 protected void dlemojrep_ItemCommand(object source, DataListCommandEventArgs e)
    {
        int USER_ID = Convert.ToInt32(Session["USERID"]);
        if (USER_ID != 0)
        {
            if (e.CommandName == "imgemoji")
            {
                touid = Convert.ToInt32(e.CommandArgument);
                oluserid.Value = touid.ToString();
                SqlConnection conn = new SqlConnection(c.connStr);
                conn.Open();
                
                SqlCommand cmd = new SqlCommand("select emo_pic from tbl_emoji where emojies_id= '" + touid + "'", conn);
                int chatreqacc = Convert.ToInt32(cmd.ExecuteScalar());
                if (chatreqacc != 0)
                {
                    GetMessages();
                    tblchat.Visible = true;
                }
                else
                {
                    ScriptManager.RegisterStartupScript(this, GetType(), "showalert", "alert('Sorry! you can not send message, your caht request has been declined');", true);
                    tblchat.Visible = false;
                }
            }
        }
    }

но проблема в том, как распределить эти эмодзи по специальным изображениям в текстовом поле.

CHill60

Ну а текстовое поле будет содержать текст. Если вы хотите включить изображения, то вам следует использовать Управления richtextbox[^]

Member 11936990

хорошо, спасибо.

1 Ответов

Рейтинг:
2

CHill60

Согласно моему комментарию, если вы хотите отображать как текст, так и изображения, вам нужно использовать Управления richtextbox[^] вместо текстового поля