【问题标题】:GridView's DataSource in Code BehindGridView 的 DataSource 在 Code Behind
【发布时间】:2013-01-21 16:57:09
【问题描述】:

我已经有一个填充的GridView 工作完美,但现在我需要设置一些parameters。我在HTML page 中填充gridview。这是我的FULL GridView HTML code 希望你们不要将其视为垃圾邮件,因为它是一个巨大的代码。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" style="font-family: Verdana, Arial, Sans-Serif" 
            DataKeyNames="id"
            CssClass="gridview" DataSourceID="MyDataSource"
            AllowSorting ="True" AllowPaging="True" BackColor="#CCCCCC" 
            BorderStyle="Inset" BorderWidth="2px" BorderColor="GrayText"
            CellPadding="1"
            CellSpacing="5"
            HeaderStyle-HorizontalAlign="Center"
            OnRowDataBound="GridView1_RowDataBound" 
            ForeColor = "Black" RowStyle-CssClass="gridview" 
            onrowcommand="GridView1_RowCommand">            
            <AlternatingRowStyle BackColor="#CCCCCC" />
                <columns>

                    <asp:BoundField HeaderText="ID" DataField="id"  />
                    <asp:BoundField HeaderText="PRIORIDADE" DataField="prioridade" SortExpression="prioridade" ItemStyle-HorizontalAlign="Center" />
                    <asp:BoundField  HeaderText="SITUAÇÃO"  DataField="situacao" SortExpression="situacao" ItemStyle-HorizontalAlign="Center" >
                    <ItemStyle HorizontalAlign="Center" />
                    </asp:BoundField>
                    <asp:BoundField HeaderText="RESPONSAVEL" DataField="responsavel" SortExpression="responsavel" HeaderStyle-Width="65px" ItemStyle-HorizontalAlign="Center">
                    <HeaderStyle Width="65px" />
                    <ItemStyle HorizontalAlign="Center" />
                    </asp:BoundField>
                    <asp:BoundField HeaderText="DATA DE CADASTRO" DataField="dt_cadastro" DataFormatString="{0:dd/MM/yyyy}" HeaderStyle-Width="60px"
                    SortExpression="dt_cadastro" ItemStyle-HorizontalAlign="Center" >
                    <HeaderStyle Width="60px" />
                    <ItemStyle HorizontalAlign="Center" />
                    </asp:BoundField>
                    <asp:BoundField HeaderText="PREVISÃO DE TÉRMINO" DataField="previsao_termino" DataFormatString="{0:dd/MM/yyyy}" HeaderStyle-Width="60px"
                    SortExpression="previsao_termino" ItemStyle-HorizontalAlign="Center">
                    <HeaderStyle Width="60px" />
                    <ItemStyle HorizontalAlign="Center" />
                    </asp:BoundField>
                    <asp:BoundField HeaderText="PROJETO" DataField="projeto"  ItemStyle-HorizontalAlign="Center"></asp:BoundField>
                    <asp:BoundField HeaderText="FUNCIONALIDADE" DataField="funcionalidade" ItemStyle-HorizontalAlign="Center" />
                    <asp:BoundField HeaderText="CLUBE" DataField="clube" SortExpression="clube" ItemStyle-HorizontalAlign="Center" />

                    <asp:TemplateField HeaderStyle-Width="70px" HeaderText="VISUALIZAR" >
                        <ItemTemplate>
                            <asp:Button ID="Btn_Visualizar" runat="server" Text="VISUALIZAR" CssClass="Btn_Grid"  Font-Size="7pt" Font-Names="Verdana, Arial"
                            CommandName="visualizar" CommandArgument="<%# ((GridViewRow)Container).RowIndex %>" />                            
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderStyle-Width="66px" HeaderText="ALTERAR">
                        <ItemTemplate>
                            <asp:Button ID="Btn_Alterar" runat="server" Text="ALTERAR" CssClass="Btn_Grid" Font-Size="7pt" Font-Names="Verdana, Arial"
                            CommandName="editar" CommandArgument="<%# ((GridViewRow)Container).RowIndex %>" />
                        </ItemTemplate>
                    </asp:TemplateField>


                </columns>
            <EditRowStyle ForeColor="Black" CssClass="GridViewEditRow" />
            <FooterStyle BackColor="#CCCCCC" />
            <HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" BorderColor="White" BorderStyle="Solid" BorderWidth="1px" />
            <PagerStyle BackColor="#CCCCCC" ForeColor="Black" HorizontalAlign="Left" />
            <RowStyle BackColor="White" />
            <SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />      
            </asp:GridView>           

            <asp:SqlDataSource ID="MyDataSource" runat="server"
               ConnectionString="server=localhost;User Id=xx;password=xxxx;database=xxxx"
               ProviderName ="MySql.Data.MySqlClient"

               SelectCommand="SELECT ch.id, sit.descricao as situacao, resp.responsavel, ch.dt_cadastro, ch.previsao_termino, func.descricao as funcionalidade, 
                              proj.descricao as projeto ,pr.id as prid, pr.prioridade, clb.clube
                              FROM chamados AS ch  
                              INNER JOIN prioridades as pr  ON ch.prioridade = pr.id
                              INNER JOIN clubes as clb ON ch.clube = clb.id 
                              INNER JOIN responsaveis as resp ON ch.responsavel = resp.id
                              INNER JOIN situacoes as sit ON ch.situacao = sit.id 
                              INNER JOIN projetos as proj ON ch.projeto = proj.id
                              INNER JOIN funcionalidades as func ON ch.funcionalidade = func.id WHERE situacao != 3"

               UpdateCommand="Update chamados SET status = @status , responsavel = @responsavel, 
               previsao_termino = @previsao_termino, titulo = @titulo WHERE id = @id"

               DeleteCommand="Delete FROM chamados WHERE id = @id">
               <DeleteParameters>
                            <asp:Parameter Name="id" Type="Int32" />

               </DeleteParameters>

               <UpdateParameters>
                            <asp:Parameter Name="status" Type="String" />
                            <asp:Parameter Name="responsavel" Type="String" />
                            <asp:Parameter Name="previsao_termino" Type="DateTime" />
                            <asp:Parameter Name="titulo" Type="String" />
                            <asp:Parameter Name="id" Type="Int32" />
               </UpdateParameters>
            </asp:SqlDataSource>

如何在 Aspx.cs 文件中完成所有这些操作,是否创建 DataSet 并将其设置为 DataSource 到 GridView ,以及如何将值设置为列?谢谢 ! Obs:我在单元格上也有两个按钮。 [评论] - 其他解决方案是在下面的代码中传递parameter,这可能吗?我需要传递Session的值

【问题讨论】:

    标签: c# asp.net visual-studio-2010 gridview


    【解决方案1】:

    我终于从here找到了答案!

    我的aspx 代码:这是带有参数@club 的选择命令

     SelectCommand="SELECT ch.id, sit.descricao as situacao, resp.responsavel, ch.dt_cadastro, ch.previsao_termino, func.descricao as funcionalidade, 
                                  proj.descricao as projeto ,pr.id as prid, pr.prioridade, clb.clube
                                  FROM chamados AS ch  
                                  INNER JOIN prioridades as pr  ON ch.prioridade = pr.id
                                  INNER JOIN clubes as clb ON ch.clube = clb.id 
                                  INNER JOIN responsaveis as resp ON ch.responsavel = resp.id
                                  INNER JOIN situacoes as sit ON ch.situacao = sit.id 
                                  INNER JOIN projetos as proj ON ch.projeto = proj.id
                                  INNER JOIN funcionalidades as func ON ch.funcionalidade = func.id WHERE situacao != 3 AND ch.clube = @club"
    
    <SelectParameters>
                        <asp:Parameter Name="club" Type="String" />
                   </SelectParameters>
    

    然后这里是我的aspx.cscode:这里我设置set参数的值,因为它在aspx.cs中你可以做任何你想做的设置值...

    MyDataSource.SelectParameters["club"] = new Parameter()
                {
                    Name = "club",
                    DefaultValue = "2" };
    

    工作完美 xD 希望它可以帮助其他人...再见伙计们!

    【讨论】:

      【解决方案2】:

      您也可以在代码隐藏页面中完成所有这些任务。 请参阅以下链接以获取更多参考。

      http://www.codeproject.com/Articles/24085/Insert-Update-Delete-with-Gridview-Simple-Way

      【讨论】:

      • 我现在就读...但是告诉我。我有两个按钮,这些按钮有 Functions() 我也可以这样做吗? (使用您刚刚发送给我的链接中的方法)谢谢
      • 这些功能是什么,你对这两个按钮的期望。
      • 他们都打开了一个包含行详细信息的新页面...一个只是View,另一个是Edit。打开一个新的windos,一个我只看到细节,另一个我可以编辑status
      • 您可以在页面后面的代码中执行这两个功能。您可以根据您为按钮指定的命令名称从 rowcommand 事件中调用相同的页面。例如:item.commanname="visualizar" 然后执行和你现在做的一样,编辑也一样
      • 这就是我现在正在做的......我只需要知道如何像现在这样将parameter 值传递给gridview,我想这会更容易......
      【解决方案3】:
      using System;
      using System.Data;
      using System.Configuration;
      using System.Collections;
      using System.Web;
      using System.Web.Security;
      using System.Web.UI;
      using System.Web.UI.WebControls;
      using System.Web.UI.WebControls.WebParts;
      using System.Web.UI.HtmlControls;
      using System.Data.Sql;
      using System.Data.SqlClient;
      using System.Drawing;
      
      public partial class _Default : System.Web.UI.Page
      {
          protected void Page_Load(object sender, EventArgs e)
          {
      
      getGrid();
      
          }
          public string GetCon()
          {
              return System.Configuration.ConfigurationManager.ConnectionStrings["conStr"].ConnectionString.ToString();
          }
      
          public void getGrid()
          {
      
              GridView grd = new GridView();        
              Page.Controls.Add(grd);
              form1.Controls.Add(grd);
      
              grd.ControlStyle.Font.Size = 9;
      
      
              SqlConnection conn = new SqlConnection(GetCon());
              conn1.Open();
              SqlCommand cmd4grid = new SqlCommand("Select * from tblCustomers", conn);
              SqlDataAdapter dad = new SqlDataAdapter(cmd4grid);
              DataTable dt = new DataTable();
              dad.Fill(dt);
              grd.DataSource = dt;
              grd.DataBind();
          }
      }
      
      **strong text**
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-09-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多