欧美日韩国产网暴台湾_白拍偷拍制服丝袜_国产麻豆日韩在线观看_精品欧美在线va天堂资源站_亚洲色成人WWW永久_免费高级毛片AV_精品國產av色一區二區深夜久久_亚洲乱码中文字幕av综合_一级做A爱片特黄在线观看_少妇免费亚洲综合

Previous topicNext topic
Help > 使用指南 > 數(shù)據(jù)規(guī)范 > 02窗口選擇 >
代碼自定義執(zhí)行

有時候我們需要通過一些特殊的權(quán)限判斷來決定一個窗口是否打開供用戶選擇,所以這里我們介紹一下如何用代碼控制打開窗口選擇。

第一步:先設(shè)置一下列的自定義項(xiàng)目為“...”。也可以直接用代碼tbl.Cols("列名稱").ComboList="..."來設(shè)置。

第二步:設(shè)置好相應(yīng)的窗體選擇規(guī)范,但是最后不要綁定到表屬性中去。并記錄好相應(yīng)的規(guī)范信息

第三步:到表事件CellButtonClick事件中去寫代碼。

 Vb.Net
        '定義一個私有字段,保存窗體選擇數(shù)據(jù)規(guī)范
        Private m_frmSelect As FormSelectClient=Nothing
        Public Sub CellButtonClick(sender As Object,e As  C1.Win.C1FlexGrid.RowColEventArgs)
            '根據(jù)事件觸發(fā)對象獲得表對象
            Dim tbl As SmGrid=sender
            '根據(jù)列序號獲得Column對象
            Dim strColName As String=tbl.Cols(e.Col).Name
            '獲得當(dāng)前行
            Dim dr As RowData=tbl.Rows(e.Row).GetRowData()
            '如果獲得獲得的當(dāng)前行為空,表示當(dāng)前行非綁定行,則退出
            If dr Is Nothing Then Return
            '處理各個彈出窗口
            Select Case strColName
                Case "TelephoneNO"
                    If dr.Locked=False Then
                        '先檢查一下此
                        If m_frmSelect Is Nothing Then
                            '定義初始化窗體選擇數(shù)據(jù)規(guī)范
                            m_frmSelect=New FormSelectClient("41c09a96a2dd42ca9bf9da666c9b33d1",False)
                            m_frmSelect.AcceptGrid=tbl '告訴數(shù)據(jù)規(guī)范結(jié)果往哪返回
                        End If
                        '取消單元格彈出文本編輯框的默認(rèn)功能
                        e.Cancel=True
                        '如果選擇窗口沒有打開,或者處理隱藏狀態(tài),判斷這個是防止新增彈窗重復(fù)調(diào)用
                        If m_frmSelect.SelectForm.IsOpened=False OrElse m_frmSelect.SelectForm.Visible=False Then
                            m_frmSelect.SelectForm.BindingColName=strColName '賦值當(dāng)前列名
                            m_frmSelect.SelectForm.SelectSource = SelectSourceEnum.CellButtonClick '固定值,告訴窗體選擇自己是從哪里打開的,方便根據(jù)特性處理數(shù)據(jù)
                            m_frmSelect.SelectForm.BindingBaseGrid=tbl '當(dāng)前選擇窗口綁定表
                            m_frmSelect.SelectForm.ShowDialog() '打開窗口,注意盡量不要用Show()方法,因?yàn)檫@樣再次打開窗口執(zhí)行不了SelectForm中的Load事件,可能數(shù)據(jù)返回的會不如預(yù)期
                        End If
                    End If
                Case Else
                    
            End Select
        End Sub

C#
    // 定義一個私有字段,保存窗體選擇數(shù)據(jù)規(guī)范
    private FormSelectClient m_frmSelect = null;
    public void CellButtonClick(object sender, C1.Win.C1FlexGrid.RowColEventArgs e)
    {
        // 根據(jù)事件觸發(fā)對象獲得表對象
        SmGrid tbl = sender;
        // 根據(jù)列序號獲得Column對象
        string strColName = tbl.Cols(e.Col).Name;
        // 獲得當(dāng)前行
        RowData dr = tbl.Rows(e.Row).GetRowData();
        // 如果獲得獲得的當(dāng)前行為空,表示當(dāng)前行非綁定行,則退出
        if (dr == null)
            return;
        // 處理各個彈出窗口
        switch (strColName)
        {
            case "TelephoneNO":
                {
                    if (dr.Locked == false)
                    {
                        // 先檢查一下此
                        if (m_frmSelect == null)
                        {
                            // 定義初始化窗體選擇數(shù)據(jù)規(guī)范
                            m_frmSelect = new FormSelectClient("41c09a96a2dd42ca9bf9da666c9b33d1", false);
                            m_frmSelect.AcceptGrid = tbl; // 告訴數(shù)據(jù)規(guī)范結(jié)果往哪返回
                        }
                        // 取消單元格彈出文本編輯框的默認(rèn)功能
                        e.Cancel = true;
                        // 如果選擇窗口沒有打開,或者處理隱藏狀態(tài),判斷這個是防止新增彈窗重復(fù)調(diào)用
                        if (m_frmSelect.SelectForm.IsOpened == false || m_frmSelect.SelectForm.Visible == false)
                        {
                            m_frmSelect.SelectForm.BindingColName = strColName; // 賦值當(dāng)前列名
                            m_frmSelect.SelectForm.SelectSource = SelectSourceEnum.CellButtonClick; // 固定值,告訴窗體選擇自己是從哪里打開的,方便根據(jù)特性處理數(shù)據(jù)
                            m_frmSelect.SelectForm.BindingBaseGrid = tbl; // 當(dāng)前選擇窗口綁定表
                            m_frmSelect.SelectForm.ShowDialog(); // 打開窗口,注意盡量不要用Show()方法,因?yàn)檫@樣再次打開窗口執(zhí)行不了SelectForm中的Load事件,可能數(shù)據(jù)返回的會不如預(yù)期
                        }
                    }

                    break;
                }

            default:
                {
                    break;
                }
        }
    }