| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • Stop wasting time looking for files and revisions. Connect your Gmail, DriveDropbox, and Slack accounts and in less than 2 minutes, Dokkio will automatically organize all your file attachments. Learn more and claim your free account.

View
 

Lecture - Form Objects - GridView

Page history last edited by Dr. Ron Eaglin 8 years, 3 months ago

 The ASP.NET GridView Control

 

 

Prerequisites

 

You should have a decent mastery of all the basic form objects at COP 4834 Lectures Page - these will give you a foundation for the more advanced objects here.

 

Summary

 

GridView Part 1 -

 

GridView Part 2 - Part 2 demonstrates how to use the ItemTemplate and Template fields to add custom form objects into a GridView. This video also demonstrates how to customize the RowCommand behavior and event handling.

 

 

 

 

Video 

 

GridView Part 1 -

 

GridView Part 2 - http://online1.daytonastate.edu/player2.php?id=b06f50d1f89bd8b2a0fb771c1a69c2b0 

 

Reference Materials

 

If you really like the GridView - here is an entire site devoted to this object http://www.gridview.net/ 

 

I demonstrate some use of the Session State variable in this video - more information here - http://msdn.microsoft.com/en-us/library/ms178581.aspx 

 

Code

 

Part 2 Code

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

InsertCode.aspx

<%@ Page Language="C#" Title="Insert/Update Codes" AutoEventWireup="true" CodeBehind="InsertCode.aspx.cs" Inherits="TraumaFlow.CategoryManagement.InsertCode" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Insert Code</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <h1 style="text-align:center"></h1>
    <table><tr>
    <td>Select Category</td>
    <td>
        <asp:DropDownList ID="ddlSelectCategory" runat="server" 
            DataSourceID="SqlDataSource1" DataTextField="DisplayText" 
            DataValueField="id" AutoPostBack="True" 
            onselectedindexchanged="ddlSelectCategory_SelectedIndexChanged">
        </asp:DropDownList>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:TraumaFlowConnectionString %>" 
            SelectCommand="SELECT * FROM [Categories]"></asp:SqlDataSource>
    </td>
    </tr>
    <tr>
    <td>Enter Code</td><td>
        <asp:TextBox ID="tbCode" runat="server"></asp:TextBox></td>
        </tr>
    </table>
        <asp:Button ID="btnSubmit" runat="server" Text="Submit" 
            onclick="btnSubmit_Click" />
        <asp:Button ID="btnUpdate" runat="server" Text="Update" 
            onclick="btnUpdate_Click" Visible="False" />
        <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
            ConnectionString="<%$ ConnectionStrings:TraumaFlowConnectionString %>" 
            SelectCommand="sp_InsertCode" SelectCommandType="StoredProcedure">
            <SelectParameters>
                <asp:ControlParameter ControlID="ddlSelectCategory" Name="CategoryID" 
                    PropertyName="SelectedValue" Type="Int32" />
                <asp:ControlParameter ControlID="tbCode" Name="DisplayText" PropertyName="Text" 
                    Type="String" />
            </SelectParameters>
        </asp:SqlDataSource>
        <asp:SqlDataSource ID="SqlDataSource4" runat="server" 
            ConnectionString="<%$ ConnectionStrings:TraumaFlowConnectionString %>" 
            SelectCommand="sp_UpdateCode" SelectCommandType="StoredProcedure">
            <SelectParameters>
                <asp:SessionParameter Name="CodeID" SessionField="CodeID" Type="Int32" />
                <asp:ControlParameter ControlID="tbCode" Name="DisplayText" PropertyName="Text" 
                    Type="String" />
            </SelectParameters>
        </asp:SqlDataSource>
        <hr />
        <asp:GridView ID="gvCodes" runat="server" AutoGenerateColumns="False" 
            CellPadding="4" DataKeyNames="CategoryID,CodeID" DataSourceID="SqlDataSource3" 
            EnableModelValidation="True" ForeColor="#333333" GridLines="None" OnRowCommand="gvCodes_RowCommand">
            <AlternatingRowStyle BackColor="White" />
            <Columns>
                <asp:BoundField DataField="CategoryID" HeaderText="CategoryID" 
                    InsertVisible="False" ReadOnly="True" SortExpression="CategoryID" />
                <asp:BoundField DataField="CodeID" HeaderText="CodeID" InsertVisible="False" 
                    ReadOnly="True" SortExpression="CodeID" />
                <asp:BoundField DataField="Category" HeaderText="Category" 
                    SortExpression="Category" />
                <asp:BoundField DataField="Code" HeaderText="Code" SortExpression="Code" />  
                <asp:TemplateField>
                <ItemTemplate>
                <asp:LinkButton runat="server" ID="lbEdit" Text="Edit This Code" CommandName="editinform" 
                CommandArgument="<%# ((GridViewRow) Container).RowIndex %>"></asp:LinkButton>
                </ItemTemplate>
                </asp:TemplateField>                             
            </Columns>
            <EditRowStyle BackColor="#2461BF" />
            <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
            <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
            <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
            <RowStyle BackColor="#EFF3FB" />
            <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
        </asp:GridView>
        <asp:SqlDataSource ID="SqlDataSource3" runat="server" 
            ConnectionString="<%$ ConnectionStrings:TraumaFlowConnectionString %>" SelectCommand="SELECT Categories.id AS 'CategoryID', Codes.id AS 'CodeID', Categories.DisplayText AS 'Category', Codes.DisplayText AS 'Code' FROM Categories INNER JOIN Codes ON Categories.id = Codes.CategoryID
WHERE Categories.id = @CategoryID">
            <SelectParameters>
                <asp:ControlParameter ControlID="ddlSelectCategory" Name="CategoryID" 
                    PropertyName="SelectedValue" />
            </SelectParameters>
        </asp:SqlDataSource>
    </div>
    </form>
</body>
</html> 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

InsertCode.apsx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace TraumaFlow.CategoryManagement
{
    public partial class InsertCode : System.Web.UI.Page
    {
        public int CodeID()
        {
            if (Session["CodeID"] != null)
            {
                return Convert.ToInt32(Session["CodeID"]);
            }
            else
            { return 0; }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
                        
        }
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            SqlDataSource2.Select(DataSourceSelectArguments.Empty);
            tbCode.Text = string.Empty;
            gvCodes.DataBind();
        }
        protected void ddlSelectCategory_SelectedIndexChanged(object sender, EventArgs e)
        {
            tbCode.Text = string.Empty;
            gvCodes.DataBind();
        }
        protected void gvCodes_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            int index = Convert.ToInt32(e.CommandArgument);
            if (e.CommandName == "editinform")
            {
                GridViewRow row = gvCodes.Rows[index];
                tbCode.Text = row.Cells[3].Text;
                Session.Add("CodeID", row.Cells[1].Text);
                btnSubmit.Visible = false;
                btnUpdate.Visible = true;
            }
        }
        protected void btnUpdate_Click(object sender, EventArgs e)
        {
            SqlDataSource4.Select(DataSourceSelectArguments.Empty);
            tbCode.Text = string.Empty;
            gvCodes.DataBind();
            btnSubmit.Visible = true;
            btnUpdate.Visible = false;
            Session.Remove("CodeID");
        }
    }
} 
 

 

 

 

Additional Information

 

Adding Item Templates to Datagrid - Video covering more details of Item Templates and the DataGrid Control.

 

 

COP 4834 Lectures Page

Comments (0)

You don't have permission to comment on this page.