怎么防止下拉列表控件的EditvalueChanged事件進(jìn)入死循環(huán)

本篇內(nèi)容主要講解“怎么防止下拉列表控件的EditvalueChanged事件進(jìn)入死循環(huán)”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“怎么防止下拉列表控件的EditvalueChanged事件進(jìn)入死循環(huán)”吧!

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作、林口網(wǎng)絡(luò)推廣、微信小程序開發(fā)、林口網(wǎng)絡(luò)營(yíng)銷、林口企業(yè)策劃、林口品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供林口建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:www.muchs.cn

當(dāng) 下拉列表控件選中后判定另一個(gè)為空,return之前需要將該下拉列表清空,就又會(huì)觸發(fā)Changed事件,解決方案就是將空值的判斷放置最外層,代碼如下:

 private void gluCOATemplate_EditValueChanged(object sender, EventArgs e)
        {
            try
            {
                if (gluCOATemplate.Text != "")
                {
                    string sCoaId = gluCOATemplate.Text;
                    string sBacthId = txtLotID.Text;
                    if (txtLotID.Text == "")
                    {
                        CommonFunction.ShowMsgBox("檢查批號(hào)不能為空");
                        InitgdvCoaItem();
                        gluCOATemplate.Text = "";
                        txtLotID.Focus();
                        return;
                    }
                    if (gluCOATemplate.Text == "")
                    {
                        CommonFunction.ShowMsgBox("請(qǐng)選擇模板ID");
                        gluCOATemplate.Focus();
                        return;
                    }

                    if (txtLotID.Text != "" && sCoaId != "")
                    {
                        DataTable dt = new DataTable();
                        dt = QCMLIST.QCM_View_COA_Detail(sCoaId, sBacthId);

                        if (dt != null)
                        {
                            udcGVNewDelCtrl1.RecordCount = dt.Rows.Count;
                            //DevGridControlHelper.BindData(gdcCOAItem, dt);
                            DevGridControlHelper.BindData(gdcCOAItem, dt, new int[] { 1, 1, 1, 1, 1, 1 });
                        }
                        else
                        {
                            InitgdvCoaItem();
                        }

                    }
                }
            }
            catch (Exception ex)
            {
                CommonFunction.ShowMsgBox(ex.Message);
                return;
            }
        }

===============

防止添加的數(shù)據(jù)主鍵沖突:

一開始沒有主鍵就取查到的最大值+1,

int iSeq = InTag.coa_list[i].item_seq;
                            if (iSeq == 0)//傳入的Seq為空(0)時(shí),取數(shù)據(jù)庫(kù)中最大的+1,否則直接保存
                            {
                                List<UQcmcoaitem> uQcmcoaitemlist = ctx.UQcmcoaitem.Where(t => t.PkgNoticeNo == sPkgId && t.Factory == sFactory).OrderByDescending(t=>t.ItemSeq).ToList();
                                if (uQcmcoaitemlist != null)
                                {
                                    iSeq = uQcmcoaitemlist[0].ItemSeq + 1;
                                }
                                else
                                {
                                    iSeq = 1;
                                }
                            }
                            UQcmcoaitem uQcmcoaItem = new UQcmcoaitem
                            {
                                PkgNoticeNo = sPkgId,
                                Factory = sFactory,
                                ItemSeq = iSeq,
                                TestingResult =InTag.coa_list[i].testing_result,

                                TestingItem = InTag.coa_list[i].testing_item,
                                TestingSpec = InTag.coa_list[i].testing_specification,
                                TestingMethod = InTag.coa_list[i].testing_method,
                                Dimens = InTag.coa_list[i].dimens,
                                CreateTime = DBGV._dbc.DB_GetSysTime(),
                                CreateUserId = InTag._cmn_in._user_id
                            };
                            ctx.UQcmcoaitem.Add(uQcmcoaItem);

但是當(dāng)添加多條Seq=0的數(shù)據(jù)時(shí),從數(shù)據(jù)庫(kù)查出的最大值+1就會(huì)使得要添加的這幾天數(shù)據(jù)的主鍵沖突,因?yàn)槭聞?wù)還沒提交,Seq都是Max+1

解決方法:在循環(huán)外面加一個(gè)int變量(count=0),每次Max+1后,再加上count:

 int count = 0;
for (int i = 0; i < InTag.coa_list.Length; i++)
{
                      if (InTag.coa_list[i].step == 'I')
                        {
                            int iSeq = InTag.coa_list[i].item_seq;
                            if (iSeq == 0)
                            {
                                List<UQcmcoaitem> uQcmcoaitemlist = ctx.UQcmcoaitem.Where(t => t.PkgNoticeNo == sPkgId && t.Factory == sFactory).OrderByDescending(t=>t.ItemSeq).ToList();
                                if (uQcmcoaitemlist != null)
                                {
                                    iSeq = uQcmcoaitemlist[0].ItemSeq + 1+count;
                                    count++;
                                }
                                else
                                {
                                    iSeq = 1;
                                }
                            }
                            UQcmcoaitem uQcmcoaItem = new UQcmcoaitem
                            {
                                PkgNoticeNo = sPkgId,
                                Factory = sFactory,
                                ItemSeq = iSeq,
                                TestingResult =InTag.coa_list[i].testing_result,

                                TestingItem = InTag.coa_list[i].testing_item,
                                TestingSpec = InTag.coa_list[i].testing_specification,
                                TestingMethod = InTag.coa_list[i].testing_method,
                                Dimens = InTag.coa_list[i].dimens,
                                CreateTime = DBGV._dbc.DB_GetSysTime(),
                                CreateUserId = InTag._cmn_in._user_id
                            };
                            ctx.UQcmcoaitem.Add(uQcmcoaItem);
                        }
                        else
                        {
                            sMsgCode = "QCM-0004";
                            return GlobalConstant.FAIL;
                        }
                    }
                    ctx.SaveChanges();
                    transaction.Commit();

GridLookUpEdit下拉列表的高度設(shè)置:

將properties中的AutoHeight設(shè)置為false,再設(shè)置size的值

怎么防止下拉列表控件的EditvalueChanged事件進(jìn)入死循環(huán)

到此,相信大家對(duì)“怎么防止下拉列表控件的EditvalueChanged事件進(jìn)入死循環(huán)”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

網(wǎng)站名稱:怎么防止下拉列表控件的EditvalueChanged事件進(jìn)入死循環(huán)
URL地址:http://www.muchs.cn/article44/ihejee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、手機(jī)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)公司、微信公眾號(hào)、App開發(fā)、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名