0

我似乎无法找到一种方法来调整带有文本的 ASPxHtmlEditor 的大小。应该没有滚动条,并且所有文本都应该始终可见。文本是从后面的代码加载的。所以我输入的文本越多,控件就应该越大。有人请帮忙。

编辑:文本在页面加载时是已知的,如果可能的话,这可以在服务器端完成。

 <dx:ASPxHtmlEditor ID="txtMessageBody" ClientInstanceName="txtMessageBody" runat="server"
                Height="50px" Width="740px" ActiveView="Preview">
                <Toolbars>
                </Toolbars>
                <Settings AllowHtmlView="false" AllowPreview="true" AllowDesignView="false" />
                <SettingsHtmlEditing EnterMode="BR"   />
 </dx:ASPxHtmlEditor>
4

1 回答 1

0

所以我设法找到了一种方法。不是最优雅的方式,但毫无疑问地给了我预期和需要的结果:

protected void Page_Load(object sender, EventArgs e)
{
    DataTable dtMsg = new DataTable();

    string strConn = cConnection.GetConnectionString();
    SqlConnection conn = new SqlConnection(strConn);

    SqlCommand sqlCMD = new SqlCommand("GetHomeMessage", conn);

    sqlCMD.CommandType = CommandType.StoredProcedure;

    sqlCMD.Parameters.Add("@Lang", SqlDbType.VarChar).Value = "Afrikaans";


    SqlDataAdapter sdaStat = new SqlDataAdapter(sqlCMD);

    sdaStat.Fill(dtMsg);

    if (dtMsg.Rows != null && dtMsg.Rows.Count > 0)
    {
        txtMessageBody.Html = dtMsg.Rows[0][0].ToString();

        MemoryStream stream = new MemoryStream();

        txtMessageBody.Export(DevExpress.Web.ASPxHtmlEditor.HtmlEditorExportFormat.Txt, stream);

        stream.Position = 0;
        StreamReader reader = new StreamReader(stream);
        string msgBody = reader.ReadToEnd();
        msgBody = msgBody.Trim();
        stream.Close();
        reader.Close();

        Font font = new Font("Arial", 16, FontStyle.Regular);

        Size size = TextRenderer.MeasureText(msgBody, font);

        txtMessageBody.Height = size.Height;

        txtMessageBody.SettingsResize.AllowResize = true;
        txtMessageBody.SettingsResize.MinWidth = 740;
    }
}
于 2013-09-12T07:00:46.320 回答