Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何干扰ASPxListBox的javascript和codebehind_Javascript_C#_Asp.net_Devexpress - Fatal编程技术网

如何干扰ASPxListBox的javascript和codebehind

如何干扰ASPxListBox的javascript和codebehind,javascript,c#,asp.net,devexpress,Javascript,C#,Asp.net,Devexpress,当我单击更新按钮时,aspxlistbox由codebeahind填充。当我将公司代码打印到aspxtbox4时,公司名称的公司代码显示在第二个aspxtbox中。为此,我使用aspxtbox4的lostfocus事件 但是,aspxlistbox会重置所有数据。这对我来说是一个意想不到的问题。我该怎么应付呢 这是我的Asp代码 这是下面的Javascript代码 function getFirmName(s, e) { devpopup.PerformCallbac

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

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

这是我的Asp代码


这是下面的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;
}
函数getFirmName(s,e){ devopup.PerformCallback('firmtxt |'+s.GetText()); } 函数addListClick(s,e){ var firmcode=textbox\u firmcode.GetText(); var firmname=textbox_firmname.GetText(); var-st=0; 对于(var i=0;i 最后一个是C后面的代码#

受保护的void devopup\u WindowCallback(对象源,PopupWindowCallbackArgs e)
{
string[]data=e.Parameter.Split(“|”);
if(数据[0].Equals(“firmtxt”))
{
ASPxPageControl页面=(ASPxPageControl)((aspxpopopcontrol)源代码).FindControl(“ASPxPageControl1”);
ASPxRoundPanel rpanel=(ASPxRoundPanel)page.FindControl(“ASPxRoundPanel2”);
aspxtbox txtbox=(aspxtbox)rpanel.FindControl(“aspxtbox5”);
ASPxRoundPanel otherpanel=(ASPxRoundPanel)page.FindControl(“ASPxRoundPanel2”);
ASPxListBox firmlistbox=(ASPxListBox)otherpanel.FindControl(“ASPxListBox1”);
SFADatabase db=新的SFADatabase(服务器);
字符串[]frmname=db.getData(“SFA_FIRM”,新字符串[]{“frmname”}”,其中FRMCODE='“+data[1]+””);
如果(frmname.Length>0)
{
txtbox.Text=frmname[0];
焦点();
//txtbox.Enabled=false;
}
其他的
{
//txtbox.Enabled=true;
txtbox.Text=“”;
焦点();
}
}
}
public void putUpdateData(字符串参数,对象源)
{
//使用“更新”按钮将公司名称加载到列表框
columns=新字符串[]{“FRMCODE”,“FRMNAME”};
data=db.getData(SFADatabase.TABLE_FIRM,列,“其中UGRREF=“+group_id+”);
//firmlistbox.Items.Clear();
firmcodelist.Clear();
firmnamelist.Clear();
对于(int i=0;i
为了更清晰,我附上了一张gif


在我看来,LostFocus事件的回调是清除列表框的地方。devopup是CallBackPanel吗?devopup是aspxpoppc控件。你找到解决方案了吗?你能为弹出控件包含asp代码吗?我找到了一个临时解决方案。这完全没有道理。解决方案是,在LostFocusEvent中,我使用PerformCallBack函数将listbox中的数据引用到codebehind。顺便说一下,列表框会自行重置,我不知道为什么。然后,将我拥有的数据插入列表框。这种方法不起作用,但它解决了我的问题。
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;
}
 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]);
            }
}