如何干扰ASPxListBox javascript和codebehind

时间:2016-04-06 07:54:50

标签: javascript c# asp.net devexpress

当我单击更新按钮时,aspxlistbox由codebehind填充。当我将公司代码打印到AspxTextbox4时,公司名称的公司代码显示在第二个aspxtextbox中。为此,我使用了AspxTextbox4的 lostfocus事件

但是,aspxlistbox 会重置所有数据。这对我来说是一个意想不到的问题。我该如何应对?

  

这是我的Asp代码。

    <dx:ASPxTextBox ID="ASPxTextBox4"  runat="server" Width="100%" 
    ClientInstanceName="textbox_firmcode" AutoPostBack="false" EnableClientSideAPI="true">

    <ClientSideEvents LostFocus="getFirmName" />

    </dx:ASPxTextBox>

    <dx:ASPxButton ID="ASPxButton4" runat="server" Text="Add" Width="100%" AutoPostBack="False">

    <ClientSideEvents Click="addListClick" />
    </dx:ASPxButton>
<dx:ASPxListBox ID="ASPxListBox1" runat="server" Width="100%" ClientInstanceName="ASPxListBox1"> </dx:ASPxListBox>

这是以下的Javascript代码。

function getFirmName(s, e) {
            devpopup.PerformCallback('firmtxt|' + s.GetText());
}

function addListClick(s, e) {
            var firmcode = textbox_firmcode.GetText();
            var firmname = textbox_firmname.GetText();

            var st = 0;
            for (var i = 0; i < ASPxListBox1.GetItemCount() ; i++) {
                var item = ASPxListBox1.GetItem(i);
                if (item.value.split(' ')[0] == firmcode) st = 1;
            }
            if (st == 0) {
                ASPxListBox1.BeginUpdate();
                ASPxListBox1.AddItem(firmcode + ' ' + firmname);
                ASPxListBox1.EndUpdate();
                listcount++;
            }
            return false;
}

最后一个是代码隐藏C#

 protected void devpopup_WindowCallback(object source, PopupWindowCallbackArgs e)
        {

            string[] data = e.Parameter.Split('|');
            if(data[0].Equals("firmtxt"))
                {

                    ASPxPageControl page = (ASPxPageControl)((ASPxPopupControl)source).FindControl("ASPxPageControl1");
                    ASPxRoundPanel rpanel = (ASPxRoundPanel)page.FindControl("ASPxRoundPanel2");
                    ASPxTextBox txtbox = (ASPxTextBox)rpanel.FindControl("ASPxTextBox5");

                    ASPxRoundPanel otherpanel = (ASPxRoundPanel)page.FindControl("ASPxRoundPanel2");
                    ASPxListBox firmlistbox = (ASPxListBox)otherpanel.FindControl("ASPxListBox1");



                    SFADatabase db = new SFADatabase(Server);
                    string[] frmname = db.getData("SFA_FIRM", new string[] { "FRMNAME" }, "WHERE FRMCODE='" + data[1] + "'");
                    if (frmname.Length > 0)
                    {
                        txtbox.Text = frmname[0];
                        txtbox.Focus();
                        //txtbox.Enabled = false;
                    }
                    else
                    {
                        //txtbox.Enabled = true;
                        txtbox.Text = "";
                        txtbox.Focus();
                    }



                }
}

public void putUpdateData(string parameter, object source)
{
    // Load the firm name to the listbox with update button 
    columns = new string[] { "FRMCODE", "FRMNAME" };
            data = db.getData(SFADatabase.TABLE_FIRM, columns, "WHERE UGRREF=" + group_id + "");
           // firmlistbox.Items.Clear();

            firmcodelist.Clear();
            firmnamelist.Clear();

            for (int i = 0; i < SFADatabase.row_count; i++)
            {

                ListEditItem item = new ListEditItem(data[i * 2] + " " + data[i * 2 + 1], data[i * 2]);
                firmlistbox.Items.Insert(i, item);
                firmcodelist.Add(data[i * 2]);
                firmnamelist.Add(data[i * 2 + 1]);
            }
}

我附加了一个gif更清楚。

enter image description here

0 个答案:

没有答案