CheckBoxList中的选定数据到Gridview

时间:2011-03-21 16:56:52

标签: c# .net asp.net gridview checkbox

我有CheckBoxList这样的人。 (有客户名称)

Checkboxlist

这些是客户名称,每个客户都有一个客户编号(Unique - Primary Key

表:S_TEKLIF

MUS_K_ISIM代表客户名称

HESAP_NO代表客户编号

我有Send ButtonGridview。 当我单击发送按钮时,

在我的Gridview中,我只想运行此SQL;

SELECT A.HESAP_NO, A.TEKLIF_NO1 || '/' || A.TEKLIF_NO2 AS TEKLIF, A.MUS_K_ISIM, 
B.MARKA, C.SASI_NO, C.SASI_DURUM, D.TAS_MAR, RISK_SASI(A.TEKLIF_NO1, A.TEKLIF_NO2, C.SASI_NO) AS RISK,
MV_SASI(A.TEKLIF_NO1, A.TEKLIF_NO2, C.SASI_NO, SYSDATE) AS MV
FROM S_TEKLIF A,  S_URUN B, S_URUN_DETAY C, KOC_KTMAR_PR D
WHERE A.TEKLIF_NO1 || A.TEKLIF_NO2 = B.TEKLIF_NO1 || B.TEKLIF_NO2
AND A.TEKLIF_NO1 || A.TEKLIF_NO2 = C.TEKLIF_NO1 || C.TEKLIF_NO2
AND B.SIRA_NO = C.URUN_SIRA_NO
AND B.DISTRIBUTOR = D.DIST_KOD
AND B.MARKA = D.MARKA_KOD
AND B.URUN_KOD = D.TAS_KOD
AND A.HESAP_NO IN (

但是你可以看到SQL的底部,我只想在我的Gridview中显示“我在CheckBoxList中选择了哪些客户”。

我该怎么做?

我的Send_Click()函数和SQL中的内容应该是什么?

最诚挚的问候,Soner

2 个答案:

答案 0 :(得分:1)

对复选框列表中的每个项目进行评估,并检查项目是否已选中,如果是,则获取该项目的客户ID(您可能将其置于项目的value属性中)。准备以逗号分隔的那些客户ID列表,并将其传递到SQL的IN子句中。所以它就像下面这样。

SELECT A.HESAP_NO, A.TEKLIF_NO1 || '/' || A.TEKLIF_NO2 AS TEKLIF, A.MUS_K_ISIM, 
B.MARKA, C.SASI_NO, C.SASI_DURUM, D.TAS_MAR, RISK_SASI(A.TEKLIF_NO1, A.TEKLIF_NO2, C.SASI_NO) AS RISK,
MV_SASI(A.TEKLIF_NO1, A.TEKLIF_NO2, C.SASI_NO, SYSDATE) AS MV
FROM S_TEKLIF A,  S_URUN B, S_URUN_DETAY C, KOC_KTMAR_PR D
WHERE A.TEKLIF_NO1 || A.TEKLIF_NO2 = B.TEKLIF_NO1 || B.TEKLIF_NO2
AND A.TEKLIF_NO1 || A.TEKLIF_NO2 = C.TEKLIF_NO1 || C.TEKLIF_NO2
AND B.SIRA_NO = C.URUN_SIRA_NO
AND B.DISTRIBUTOR = D.DIST_KOD
AND B.MARKA = D.MARKA_KOD
AND B.URUN_KOD = D.TAS_KOD
AND A.HESAP_NO IN (12,14,13,18,26)

答案 1 :(得分:1)

我用简单的英文格式发表声明

在按钮点击事件中添加以下代码

protected void mybutton_click()
{
    StringBuilder sb = new StringBuilder();
    foreach(ListItem item in CustomerListBox.Items)
    {

         If(item.selected)
         {
             sb.Append(item.SelectedValue+",");
         }
    }

    FillGridview(sb);
}

private void FillGridview(StringBuilder sb)
{
    string s = sb.tostring().remove().lastindexof(",");
    //pass this string as param and set it your where condition.
    // Get the datatble or collection and bind grid.
}

Select your desired columsn to display 
From Your Tables (put joins if required)
Where CustomerNumber IN (@CommaSeparatedAboveString_s);