添加所有行复选框未知的GridView数据源 [英] Adding All Rows Checkbox for Unknown Gridview Data Source

查看:95
本文介绍了添加所有行复选框未知的GridView数据源的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个的GridView 是这样的。

<asp:GridView ID="GridView1" runat="server"  
         Width="16px" BackColor="White" BorderColor="#E7E7FF" 
        BorderStyle="None" BorderWidth="1px" CellPadding="3" 
        GridLines="Horizontal" Height="16px" >
        <AlternatingRowStyle BackColor="#F7F7F7" />
        <FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
        <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
        <PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" />
        <RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
        <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
        <sortedascendingcellstyle backcolor="#F4F4FD" />
        <sortedascendingheaderstyle backcolor="#5A4C9D" />
        <sorteddescendingcellstyle backcolor="#D8D8F0" />
        <sorteddescendingheaderstyle backcolor="#3E3277" />

<SortedAscendingCellStyle BackColor="#F4F4FD"></SortedAscendingCellStyle>

<SortedAscendingHeaderStyle BackColor="#5A4C9D"></SortedAscendingHeaderStyle>

<SortedDescendingCellStyle BackColor="#D8D8F0"></SortedDescendingCellStyle>

<SortedDescendingHeaderStyle BackColor="#3E3277"></SortedDescendingHeaderStyle>
    </asp:GridView>

Programaticly,我添加一个数据源本的GridView

protected void SendToGridview_Click(object sender, EventArgs e)
    {
        Calculate.Visible = true;
        MV_Label.Visible = true;
        RISK_Label.Visible = true;

        string strQuery;
        string ConnectionString = ConfigurationManager.ConnectionStrings["ora"].ConnectionString;

        OracleConnection myConnection = new OracleConnection(ConnectionString);

        strQuery = @"SELECT A.HESAP_NO, A.TEKLIF_NO1 || '/' || A.TEKLIF_NO2 AS TEKLIF, A.MUS_K_ISIM AS MUSTERI, 
                    B.MARKA, C.SASI_NO, C.SASI_DURUM, D.TAS_MAR, NVL(RISK_SASI(A.TEKLIF_NO1, A.TEKLIF_NO2, C.URUN_SIRA_NO, C.SIRA_NO),0) AS RISK,
                    NVL(MV_SASI(A.TEKLIF_NO1, A.TEKLIF_NO2, C.SIRA_NO, C.URUN_SIRA_NO, SYSDATE),0) 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 ";

        string param = "";
        foreach (ListItem l in CheckBoxList1.Items)
        {
            if (l.Selected)
            {
                param += string.Format("'{0}'", l.Value);
                param += ",";
            }
        }
        param = param.Remove(param.Length - 1);

        strQuery = strQuery + " AND A.HESAP_NO IN (" + param + ")";

        OracleCommand myCommand = new OracleCommand(strQuery, myConnection);
        myCommand.CommandType = System.Data.CommandType.Text;
        myCommand.Connection = myConnection;

        myCommand.CommandText = strQuery;

        myConnection.Open();

        OracleDataReader dr = myCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection);

        GridView1.DataSource = dr;
        GridView1.DataBind();
        GridView1.Visible = true;

        myConnection.Close();
    }

这是我的GridView的容貌;

This is my Gridview looks;

我想是的,我想之后添加复选框列危险列和 MV 列。

What i want is, i want to add checkboxes column after RISK column and MV column.

我的意思是,列的样子, HESAP_NO TEKLIF MUSTERI 马尔卡 SASI_NO SASI_DURUM TAS_MAR 危险 (复选框) MV (复选框)。完全以应 11 列。

I mean, columns looks like, HESAP_NO, TEKLIF, MUSTERI, MARKA, SASI_NO, SASI_DURUM, TAS_MAR, RISK, (CheckBoxes), MV, (Checkboxes). Totaly should be 11 column.

和我想所有的复选框被选中作为默认。

And i want all checkboxes is checked as a default.

我怎样才能做到这一点?

How can i do that?

我读 文章,但在本文的GridView正常数据源。我加入programaticly。

I read this article, but in this article Gridview a normal data source. I adding programaticly.

推荐答案

您将不得不改用自动生成列关闭并用来定义那些来代替:

You are going to have to switch AutoGenerated columns off and used defined ones instead:

<asp:GridView ID="GridView1" runat="server" Width="16px" BackColor="White"
     BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px"  
     CellPadding="3" GridLines="Horizontal" Height="16px" AutoGenerateColumns="false">

     <!-- put your style stuff here -->

     <asp:BoundField HeaderText="Text" DataField="HESAP_NO" />
     <asp:BoundField HeaderText="Text" DataField="TEKLIF" />
     <asp:BoundField HeaderText="Text" DataField="MUSTERI" />
     <asp:BoundField HeaderText="Text" DataField="MARKA" />
     <asp:BoundField HeaderText="Text" DataField="SASI_NO" />
     <asp:BoundField HeaderText="Text" DataField="SASI_DURAM" />
     <asp:BoundField HeaderText="Text" DataField="TAS_MAR" />
     <asp:BoundField HeaderText="Text" DataField="RISK" />
     <asp:BoundField HeaderText="Text" DataField="Text" />

     <asp:CheckBoxField DataField="NameCheckBoxField1" HeaderText="NameCheckBoxField1" />

     <asp:BoundField HeaderText="Text" DataField="MV" />

     <asp:CheckBoxField DataField="NameCheckBoxField2" HeaderText="NameCheckBoxField2" />

</asp:GridView> 

您还需要改变你的SQL返回两个字段的 CheckBoxField字段可以映射到。这些领域应包含所有的情况下,真正的集位域。这将允许数据被自动绑定到 CheckBoxField字段键,默认为选中。

You will also need to change your SQL to return two fields that the CheckBoxField can map to. Those fields should contain a bit field with true set for all cases. This will allow the data to be automatically bound to the CheckBoxField and checked by default.

例如:

SELECT
    -- all our fields
    'NameCheckBoxField1' = 0x1,
    'NameCheckBoxField2' = 0x1
FROM
    -- etc...

这篇关于添加所有行复选框未知的GridView数据源的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆