微信小程序实现全局搜索代码高亮

微信小程序实现全局搜索代码高亮,第1张

最近在做微信小程序的时候,需要实现在搜索框的输入内容的时候实现全局匹配实现高亮效果,目前的思路是,递归后台来返回的数据,并将对象的value值替换为需要的dom节点,并且通过rich-text来实现,高亮效果。

在实现的过程中主要考虑,不同类型的数据结构,过滤掉特殊符号,url这些基本需求;同时在实现的过程中每次都要去处理最原始的数据,这就需要考虑到对象的深拷贝问题,目前所采用的方法是通过JSONparse(JSONstringify(str))来处理,因为在这个全局搜索的项目中不太会用到函数这些对象。最后通过replace方法来处理这些目标字符串。

wxml:

js:

最近在小程序项目时候遇到加载的富文本编辑器的超出部分小程序宽度 只要是img的标签没有设置宽度导致的。设置一下宽度就可以了

onLoad: function (option) {

    if (optionid == '' || optionid == undefined) {

      return false;

    }

    var id = optionid;

    thissetData({

      id:id

    });

    var that = this;

    apputilrequest({

      url: 'entry/wxapp/getsever',

      data: {

        m: 'u_tanfang',

        ids: id

      },

      cachetime: 0,

      method: 'post',

      complete: function (res) {

        consolelog(resdatadata);

        resdatadatacontent = thatformatRichText(resdatadatacontent); //使用地方

        var  doortimes = [];

        thatsetData({

          doortimes:doortimes,

          data: resdatadata,

          doortime_list:resdatadatadoortime_list,

        });

      }

    });

    thisgetproblem();

    thisgetUser();

  },

  formatRichText:function (html){

    let newContent= htmlreplace(/\<img/gi, '<img style="width:100%;height:auto"');

    return newContent;

  },

建议你这样试试看:

显示到TextBox的话,使用个Task或Thread线程去完成

定时清空TextBox数据

将读取到的数据保存到txt或数据库,然后做个界面去查询它

这样做的好处:

不会卡顿界面

数据保存到TXT或数据库,后续可以用于追溯

using System;

using SystemCollectionsGeneric;

using SystemComponentModel;

using SystemData;

using SystemDrawing;

using SystemText;

using SystemIO;

using SystemWindowsForms;

namespace WindowsApplication2

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

/// <summary>

/// 当某个选项卡被取消选中时

/// </summary>

private void tabControl1_Deselected(object sender, TabControlEventArgs e)

{

eTabPageText = eTabPageTextTrimStart('');

}

/// <summary>

/// 当某个选项卡被选中时

/// </summary>

private void tabControl1_Selected(object sender, TabControlEventArgs e)

{

eTabPageText = "" + eTabPageText;

}

/// <summary>

/// 打开文件

/// </summary>

private void button1_Click(object sender, EventArgs e)

{

if (openFileDialog1ShowDialog() == DialogResultOK)

{

//取得当前的选项卡数目

int tabPageCount = thistabControl1TabPagesCount;

//取得欲打开的文件路径

string filePath = thisopenFileDialog1FileName;

//取得欲打开的文件名

string fileName = PathGetFileName(filePath);

//分析是否为txt格式的文件

if (PathGetExtension(filePath)ToLower() != "txt")

{

MessageBoxShow("非法文件格式!","打开文件失败",MessageBoxButtonsOK,MessageBoxIconStop);

return;

}

//采用"page"加上当前的选项卡数目加1做为选项卡的名称

string currentPageName = "page" + (tabPageCount + 1)ToString();

//采用"richTextBox"加上当前的选项卡数目加1做为选项卡中包含RichTextBox的名称

string currentTxtName = "richTextBox" + (tabPageCount + 1)ToString();

//添加一个新的选项卡,并指定其选项卡显示文字为当前打开的文件名

thistabControl1TabPagesAdd(currentPageName,fileName);

//实例化一个新的RichTextBox

RichTextBox ricTxt = new RichTextBox();

//设置其名称,布局等属性

ricTxtName = currentTxtName;

ricTxtDock = DockStyleFill;

//ricTxtTextChanged +=

//将新这个新的RichTextBox对象添加到当前新建的选项卡中

thistabControl1TabPages[currentPageName]ControlsAdd(ricTxt);

//将文件加载到当前的RichTextBox

ricTxtLoadFile(filePath,RichTextBoxStreamTypePlainText);

}

}

private void changePageText(string currentPageName)

{

thistabControl1TabPages[currentPageName]Text = "" + currentPageName;

}

}

}

namespace WindowsApplication2

{

partial class Form1

{

/// <summary>

/// 必需的设计器变量。

/// </summary>

private SystemComponentModelIContainer components = null;

/// <summary>

/// 清理所有正在使用的资源。

/// </summary>

/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>

protected override void Dispose(bool disposing)

{

if (disposing && (components != null))

{

componentsDispose();

}

baseDispose(disposing);

}

#region Windows 窗体设计器生成的代码

/// <summary>

/// 设计器支持所需的方法 - 不要

/// 使用代码编辑器修改此方法的内容。

/// </summary>

private void InitializeComponent()

{

thistabControl1 = new SystemWindowsFormsTabControl();

thisbutton1 = new SystemWindowsFormsButton();

thisopenFileDialog1 = new SystemWindowsFormsOpenFileDialog();

thisSuspendLayout();

//

// tabControl1

//

thistabControl1Location = new SystemDrawingPoint(0, -3);

thistabControl1Name = "tabControl1";

thistabControl1SelectedIndex = 0;

thistabControl1Size = new SystemDrawingSize(540, 510);

thistabControl1TabIndex = 0;

thistabControl1Selected += new SystemWindowsFormsTabControlEventHandler(thistabControl1_Selected);

thistabControl1Deselected += new SystemWindowsFormsTabControlEventHandler(thistabControl1_Deselected);

//

// button1

//

thisbutton1Location = new SystemDrawingPoint(22, 509);

thisbutton1Name = "button1";

thisbutton1Size = new SystemDrawingSize(75, 23);

thisbutton1TabIndex = 1;

thisbutton1Text = "浏览";

thisbutton1UseVisualStyleBackColor = true;

thisbutton1Click += new SystemEventHandler(thisbutton1_Click);

//

// openFileDialog1

//

thisopenFileDialog1FileName = "openFileDialog1";

//

// Form1

//

thisAutoScaleDimensions = new SystemDrawingSizeF(6F, 12F);

thisAutoScaleMode = SystemWindowsFormsAutoScaleModeFont;

thisClientSize = new SystemDrawingSize(539, 540);

thisControlsAdd(thisbutton1);

thisControlsAdd(thistabControl1);

thisName = "Form1";

thisText = "Form1";

thisResumeLayout(false);

}

#endregion

private SystemWindowsFormsTabControl tabControl1;

private SystemWindowsFormsButton button1;

private SystemWindowsFormsOpenFileDialog openFileDialog1;

}

}

设置两行样式就可以啦

<rich-text class="rich-val" :nodes="detail"></rich-text>

rich-val {

    word-break: break-all;

    white-space: pre-line;

}

在一些场景中,我们需要获取到标签里面的值来和接口返回的值做对比,一致则进行下一步,后者进行错误判断

<block wx:for='{{objectArray}}'  data-name='{{itemname}}' data-id='{{itemid}}' bindtap='select'>

        <text class='yuzhong'>{{itemname}}</text>

    </view>

主要在于 data- 这个上面  上面的那个name 和 id 是我自己定义的,你们可以随意定义一些语义化的词,

获取也很简单:

select:function(e){

consolelog(ecurrentTargetdatasetname);

    },

区别如下:

General/2DSpace下有Planer、axisymmetric、axisymmetricswirl三种选项。在二维几何模拟中,某几何轴线可以设置成axis或者symmetry边界,则可以组成6种选项。以前,本人认为若几何是镜像对称时,如书本摊开,则会将轴选择成symmetry,2DSpace下选择axisymmetric;若是轴对称,如一个圆柱,则将几何轴线设置成axis,2DSpace下选择axisymmetricswirl。

以上就是关于微信小程序实现全局搜索代码高亮全部的内容,包括:微信小程序实现全局搜索代码高亮、微信小程序富文本编辑的图片超出、winform中用richTextBox控件显示串口数据,数据读取太多导致占内存,怎么处理等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10213595.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存