I have an error with a checkbox.


Server Error in / Application.
--------------------------------------------------------------------------------

Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error:



using System;
using System.Data.SqlClient;
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.Xml.Linq;
using OmegaLove.DatePicker;
using OmegaLove.BLL;
using System.Globalization;
using Resources;
using System.Web.Profile;
using System.Net;
using System.Threading;
using DataTransfer.Tables;
using System.Collections.Specialized;
using System.Text;
using System.ComponentModel;
using System.Configuration;
using System.Data;



namespace OmegaLove.Web.UI
{
    public partial class ctrlInbox : OmegaLoveBasePageUserControl
    {
      


        public static string ConnnectionString = ConfigurationManager.ConnectionStrings["omegaloveConnectionString"].ToString();
        string message = string.Empty;
        private static DataSet ds = null;
        private static DataTable dt = null;
        private static string mstrConn = String.Empty;
        private static string UserId = null;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!(HttpContext.Current.User.Identity.IsAuthenticated))
                Response.Redirect("~/Login.aspx");
            UserId = HttpContext.Current.User.Identity.Name;
            System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
            if (!IsPostBack)
            {
             
                IsSentItems = Request.QueryString["sent"] != null;
                BindData();


            }
            
        }


        private void BindData()
        {
            string constr = ConnnectionString;
            int intGetProfileID = 0;
            if (UserId == null)
                UserId = HttpContext.Current.User.Identity.Name;


            dt = DataBase.Procedures.prc_Profile_Select.ToDataTable(ConnnectionString, UserId);
            intGetProfileID = Convert.ToInt32(dt.Rows[0]["ProfileID"].ToString());


            int toUserID = 0;
            int fromUserID = 0;
            if (IsSentItems)
                fromUserID = intGetProfileID;
            else
                toUserID = intGetProfileID;
            tbl_PMessage tbl_PMessage = new tbl_PMessage();
            //ds = DataBase.Procedures.prc_Messages_Select_All.ToDataSet(ConnnectionString, Convert.ToInt32(dt.Rows[0]["ProfileID"].ToString()));
            using (DataView dv = DB.pmessage_list(toUserID,fromUserID,null).DefaultView) 
            {
               
                Inbox.DataSource = dv;
                DataBind();
            }


        }
        private void GetData()
        {
            ArrayList arr;
            if (ViewState["SelectedRecords"] != null)
                arr = (ArrayList)ViewState["SelectedRecords"];
            else
                arr = new ArrayList();
            if (Inbox.Rows.Count > 0)
            {
                CheckBox chkAll = (CheckBox)Inbox.HeaderRow.Cells[0].FindControl("chkAll");
                for (int i = 0; i < Inbox.Rows.Count; i++)
                {
                    if (chkAll.Checked)
                    {
                        if (!arr.Contains(Inbox.DataKeys[i].Value))
                        {
                            arr.Add(Inbox.DataKeys[i].Value);
                        }
                    }
                    else
                    {
                        CheckBox chk = (CheckBox)Inbox.Rows[i].Cells[0].FindControl("chk");
                        if (chk.Checked)
                        {
                            if (!arr.Contains(Inbox.DataKeys[i].Value))
                            {
                                arr.Add(Inbox.DataKeys[i].Value);
                            }
                        }
                        else
                        {
                            if (arr.Contains(Inbox.DataKeys[i].Value))
                            {
                                arr.Remove(Inbox.DataKeys[i].Value);
                            }
                        }
                    }
                }

            }
            ViewState["SelectedRecords"] = arr;
        }


        private void DeleteRecord(string pmessageid)
        {
            string constr = ConfigurationManager.ConnectionStrings["omegaloveConnectionString"].ToString();
            string query = "delete from tbl_PMessage" + "where PMessageID=@pmessageid";
            SqlConnection con = new SqlConnection(constr);
            SqlCommand cmd = new SqlCommand(query, con);
            cmd.Parameters.AddWithValue("@pmessageid", pmessageid);
            con.Open();
            cmd.ExecuteNonQuery();
            con.Close();
        }


        protected void OnPaging(object sender, GridViewPageEventArgs e)
        {
            Inbox.PageIndex = e.NewPageIndex;
            Inbox.DataBind();
            SetData();
        }

        private void SetData()
        {
            int currentCount = 0;
            CheckBox chkAll = (CheckBox)Inbox.HeaderRow.Cells[0].FindControl("chkAll");
            chkAll.Checked = true;
            ArrayList arr = (ArrayList)ViewState["SelectedRecords"];
            for (int i = 0; i < Inbox.Rows.Count; i++)
            {
                CheckBox chk = (CheckBox)Inbox.Rows[i].Cells[0].FindControl("chk");
                if (chk != null)
                {
                    chk.Checked = arr.Contains(Inbox.DataKeys[i].Value);
                    if (!chk.Checked)
                        chkAll.Checked = false;
                    else
                        currentCount++;
                }
            }
            hfCount.Value = (arr.Count - currentCount).ToString();
        }

        protected void btnDelete_Click(object sender, EventArgs e)
        {
            int count = 0;
            SetData();
            Inbox.AllowPaging = false;
            Inbox.DataBind();

            ArrayList arr = (ArrayList)ViewState["SelectedRecords"];
            count = arr.Count;
            for (int i = 0; i < Inbox.Rows.Count; i++)
            {
                if (arr.Contains(Inbox.DataKeys[i].Value))
                {
                    DeleteRecord(Inbox.DataKeys[i].Value.ToString());
                    arr.Remove(Inbox.DataKeys[i].Value);
                }
            }
            ViewState["SelectedRecords"] = arr;
            hfCount.Value = "0";
            Inbox.AllowPaging = true;
            DataBind();
            ShowMessage(count);

        }



        protected string DisplayDiscontinuedAsYESorNO(bool discontinued)
        {
            if (discontinued)
                return "YES";
            else
                return "NO";
        }

      

        protected bool IsSentItems
        {
            get
            {
                return (bool)ViewState["IsSentItems"];
            }
            set
            {
                ViewState["IsSentItems"] = value;
            }
        }

        private void ShowMessage(int count)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("<script type = 'text/javascript'>");
            sb.Append("alert('");
            sb.Append(count.ToString());
            sb.Append(" records deleted.');");
            sb.Append("</script>");
            Page.ClientScript.RegisterStartupScript(this.GetType(),
                            "script", sb.ToString());
        }

        protected void Inbox_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            Inbox.PageIndex = e.NewPageIndex;
            BindData();
        }

        protected void Inbox_RowDataBound(object sender, GridViewRowEventArgs e)
        {

            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#CADDFD';");
                if (e.Row.RowIndex % 2 == 0)
                { // even
                    e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#FFFFFF';");
                } // odd
                else
                {
                    e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#D5E5FC';");
                }

                HiddenField hdimageId = (HiddenField)e.Row.FindControl("hiddenImgID");

                System.Web.UI.WebControls.Image MainPicID = (System.Web.UI.WebControls.Image)(e.Row.FindControl("MainPicID"));

                MainPicID.ID = hdimageId.Value;
                MainPicID.ToolTip = "Thumbnail of Photo Number =" + hdimageId.Value;


                DataTable dtPhotos = new DataTable();
                dtPhotos = DataBase.Procedures.prc_Photos_Select_Primary.ToDataTable(ConnnectionString, Convert.ToInt32(hdimageId.Value));

                // Get img id from datatable.
                if (((dtPhotos != null) && (dtPhotos.Rows.Count > 0)))
                {
                    if (Convert.ToBoolean(dtPhotos.Rows[0]["p_Primary"]))
                    {
                        MainPicID.ImageUrl = "~/Secure/ShowThumbnail.ashx?img_id=" + dtPhotos.Rows[0]["PhotoID"].ToString() + "&" + "imagesize=T" + "&" + "imageisprimary=" + "True" + "'";
                    }

                }
                else
                {

                    // set default image
                }

            }

        }

        public static string GetConnectionString(string _connectionStringsName)
        {
            System.Configuration.ConnectionStringSettingsCollection config = System.Configuration.ConfigurationManager.ConnectionStrings;
            for (int i = 0; i < config.Count; i++)
            {
                if (config[i].Name.Equals(_connectionStringsName, StringComparison.OrdinalIgnoreCase))
                    return config[i].ToString();
            }
            return String.Empty;
        }

        
    }
}

Open in new window

Line 161:                if (chk != null)
Line 162:                {
Line 163:                    chk.Checked = arr.Contains(Inbox.DataKeys[i].Value);
Line 164:                    if (!chk.Checked)
Line 165:                        chkAll.Checked = false;
 
</code>

Open in new window

omegaloveAsked:
Who is Participating?
 
InteqamConnect With a Mentor Commented:
aha

so, you are trying to delete a record while there are other records in other tables linked to it!!

delete related records from PMessage before deleting from UserPMessage.

ask your DBAdmin abouit that constraint.
0
 
InteqamCommented:
Inbox.DataKeys[i]

are you sure that Inbox.DataKeys is not null?
0
 
omegaloveAuthor Commented:
I am thing something is happenning weird.
May be take a look at the ui.
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ctrlInbox.ascx.cs" Inherits="OmegaLove.Web.UI.ctrlInbox" %>
<%@ Register Assembly="System.Web.Ajax" Namespace="System.Web.UI" TagPrefix="asp" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>
<script type="text/javascript">
<!--
    function Check_Click(objRef) {
        //Get the Row based on checkbox
        var row = objRef.parentNode.parentNode;

        //Get the reference of GridView
        var GridView = row.parentNode;

        //Get all input elements in Gridview
        var inputList = GridView.getElementsByTagName("input");

        for (var i = 0; i < inputList.length; i++) {
            //The First element is the Header Checkbox
            var headerCheckBox = inputList[0];

            //Based on all or none checkboxes
            //are checked check/uncheck Header Checkbox
            var checked = true;
            if (inputList[i].type == "checkbox" && inputList[i] != headerCheckBox) {
                if (!inputList[i].checked) {
                    checked = false;
                    break;
                }
            }
        }
        headerCheckBox.checked = checked;

    }
    function checkAll(objRef) {
        var GridView = objRef.parentNode.parentNode.parentNode;
        var inputList = GridView.getElementsByTagName("input");
        for (var i = 0; i < inputList.length; i++) {
            var row = inputList[i].parentNode.parentNode;
            if (inputList[i].type == "checkbox" && objRef != inputList[i]) {
                if (objRef.checked) {
                    inputList[i].checked = true;
                }
                else {
                    if (row.rowIndex % 2 == 0) {
                        row.style.backgroundColor = "#C2D69B";
                    }
                    else {
                        row.style.backgroundColor = "white";
                    }
                    inputList[i].checked = false;
                }
            }
        }
    }
//-->
</script>
<script type="text/javascript">
    function ConfirmDelete() {
        var count = document.getElementById("<%=hfCount.ClientID %>").value;
        var gv = document.getElementById("<%=Inbox.ClientID%>");
        var chk = gv.getElementsByTagName("input");
        for (var i = 0; i < chk.length; i++) {
            if (chk[i].checked && chk[i].id.indexOf("chkAll") == -1) {
                count++;
            }
        }
        if (count == 0) {
            alert("No records to delete.");
            return false;
        }
        else {
            return confirm("Do you want to delete " + count + " records.");
        }
    }
</script>


<table cellpadding="0" cellspacing="0" class="mbx">
    <tr>
        <td colspan="10" class="ctrl">
            <div class="fold">
                Inbox</div>
        </td>
    </tr>
</table>
<asp:GridView ID="Inbox" runat="server" DataKeyNames="pmessageid" GridLines="None"
    OnPageIndexChanging="OnPaging" OnRowDataBound="Inbox_RowDataBound" Height="20px"
    HorizontalAlign="Center" VerticalAlign="Middle" AllowPaging="true" AllowSorting="true"
    EmptyDataText="No data available." PageSize="5" AutoGenerateColumns="false" CssClass="customers-grid">
    <AlternatingRowStyle Height="25px" HorizontalAlign="Center" BackColor="#D5E5FC" VerticalAlign="Middle" />
    <Columns>
        <asp:TemplateField HeaderText="Delete">
            <HeaderStyle CssClass="delete-member"></HeaderStyle>
            <ItemStyle CssClass="delete-member" Wrap="False"></ItemStyle>
            <HeaderTemplate>
                <asp:CheckBox ID="chkAll" runat="server" onclick="checkAll(this);" />
            </HeaderTemplate>
            <ItemTemplate>
                <asp:CheckBox ID="chk" runat="server" onclick="Check_Click(this)" />
            </ItemTemplate>
        </asp:TemplateField>


        <asp:TemplateField HeaderText="From">
            <HeaderStyle CssClass="from-pic"></HeaderStyle>
            <ItemStyle CssClass="from-pic" Wrap="False"></ItemStyle>
            <ItemTemplate>
                <br />
                <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%#"~/Secure/ShowMessage.aspx?FromProfileID="+Eval("FromProfileID")+"&PMessageID="+Eval("PMessageId")  + "&FromUsername=" + Eval("FromUser")  %>'>
                    <asp:Image ID="MainPicID" BorderWidth="2" BorderColor="Silver" Style="vertical-align: middle"
                        class="srpic" runat="server" />
                </asp:HyperLink><br />
                <%#DataBinder.Eval(Container, "DataItem.FromUser")%>
                <asp:HiddenField ID="hiddenImgID" runat="server" Value='<%#DataBinder.Eval(Container,"DataItem.FromProfileID") %>' />
            </ItemTemplate>
        </asp:TemplateField>


        <asp:TemplateField HeaderText="Subject" HeaderStyle-CssClass="subject" ItemStyle-CssClass="subject">
            <HeaderStyle CssClass="subject" />
            <ItemStyle CssClass="subject" />
            <ItemTemplate>
                <asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl='<%#"~/Secure/ShowMessage.aspx?FromProfileID="+Eval("FromProfileID")+"&MessageID="+Eval("PMessageId") + "&FromUsername=" + Eval("FromUser") %>'>
                <%# Convert.ToBoolean(DataBinder.Eval(Container, "DataItem.IsRead")) ? "" : "<img src=\"../../Images/Icons/mail-new.gif\" align=\"bottom\" hspace=\"5\" border=\"0\">"%><%# DataBinder.Eval(Container, "DataItem.Subject") %>
                </asp:HyperLink>
            </ItemTemplate>
        </asp:TemplateField>


        <asp:TemplateField HeaderText="Message" HeaderStyle-CssClass="body" ItemStyle-CssClass="body">
            <HeaderStyle CssClass="body" />
            <ItemStyle CssClass="body" />
            <ItemTemplate>
                <div style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis; width: 200px;">
                    <label>
                        <%#DataBinder.Eval(Container, "DataItem.Body")%>
                    </label>
                </div>
            </ItemTemplate>
        </asp:TemplateField>


        <asp:TemplateField HeaderText="Date" HeaderStyle-CssClass="date-sent" ItemStyle-CssClass="date-sent">
            <HeaderStyle CssClass="date-sent" />
            <ItemStyle CssClass="date-sent" />
            <ItemTemplate>
                <%# String.Format("{0:MMM-dd-yyyy HH:mm:ss tt}", ((System.Data.DataRowView)Container.DataItem)["Created"])%>
            </ItemTemplate>
        </asp:TemplateField>


        <asp:TemplateField HeaderText="Read" HeaderStyle-CssClass="read" ItemStyle-CssClass="read">
            <HeaderStyle CssClass="read" />
            <ItemStyle CssClass="read" />
            <ItemTemplate>
                <asp:HyperLink ID="HyperLink3" runat="server" NavigateUrl='<%#"~/Secure/ShowMessage.aspx?FromProfileID="+Eval("FromProfileID")+"&MessageID="+Eval("PMessageId")  + "&FromUsername=" + Eval("FromUser")  %>'>
                <%# DisplayDiscontinuedAsYESorNO(Convert.ToBoolean(Eval("IsRead")))%>
                </asp:HyperLink>
                <%-- <asp:Label runat="server" ID="UserPMessageID" Visible="false" Text='<%# DataBinder.Eval(Container.DataItem,"UserPMessageID") %>' />--%>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
<asp:HiddenField ID="hfCount" runat="server" Value="0" />
<asp:Button ID="btnDelete" runat="server" Text="Delete Checked Records" OnClientClick="return ConfirmDelete();"
    OnClick="btnDelete_Click" />
<br />
(* Note: Message(s) will be automatically deleted after 30 days from the received
date)
<br />

Open in new window

0
Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

 
InteqamCommented:
at what line does the error happen? and when? when clicking delete or when paging?
0
 
omegaloveAuthor Commented:
when clicking the delete
0
 
omegaloveAuthor Commented:
goto omegalove.com

login with user: mathew
                pass: mathew
and goto the mailbox
and try to delete a message.
0
 
omegaloveAuthor Commented:
it is working now. But it does not delete the record.

I am not sure if it is the update panel or what?
using System;
using System.Data.SqlClient;
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.Xml.Linq;
using OmegaLove.DatePicker;
using OmegaLove.BLL;
using System.Globalization;
using Resources;
using System.Web.Profile;
using System.Net;
using System.Threading;
using DataTransfer.Tables;
using System.Collections.Specialized;
using System.Text;
using System.ComponentModel;
using System.Configuration;
using System.Data;



namespace OmegaLove.Web.UI
{
    public partial class ctrlInbox : OmegaLoveBasePageUserControl
    {



        public static string ConnnectionString = ConfigurationManager.ConnectionStrings["omegaloveConnectionString"].ToString();
        string message = string.Empty;
        private static DataSet ds = null;
        private static DataTable dt = null;
        private static string mstrConn = String.Empty;
        private static string UserId = null;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!(HttpContext.Current.User.Identity.IsAuthenticated))
                Response.Redirect("~/Login.aspx");
            UserId = HttpContext.Current.User.Identity.Name;
            System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
            if (IsPostBack)
            {
                GetData();
            }
            else
             IsSentItems = Request.QueryString["sent"] != null;
            BindGrid();

        }


        private void BindGrid()
        {
            string constr = ConnnectionString;
            int intGetProfileID = 0;
            if (UserId == null)
                UserId = HttpContext.Current.User.Identity.Name;


            dt = DataBase.Procedures.prc_Profile_Select.ToDataTable(ConnnectionString, UserId);
            intGetProfileID = Convert.ToInt32(dt.Rows[0]["ProfileID"].ToString());


            int toUserID = 0;
            int fromUserID = 0;
            if (IsSentItems)
                fromUserID = intGetProfileID;
            else
                toUserID = intGetProfileID;
            tbl_PMessage tbl_PMessage = new tbl_PMessage();
            //ds = DataBase.Procedures.prc_Messages_Select_All.ToDataSet(ConnnectionString, Convert.ToInt32(dt.Rows[0]["ProfileID"].ToString()));
            using (DataView dv = DB.pmessage_list(toUserID, fromUserID, null).DefaultView)
            {

                Inbox.DataSource = dv;
                Inbox.DataBind();
            }
            //DataTable dtMessage = new DataTable();

            //dtMessage = DB.pmessage_list(toUserID, fromUserID, null);
            //Inbox.DataSource = dtMessage;
            //Inbox.DataBind();

        }


        private void GetData()
        {
            ArrayList arr;
            if (ViewState["SelectedRecords"] != null)
                arr = (ArrayList)ViewState["SelectedRecords"];
            else
                arr = new ArrayList();
            if (Inbox.Rows.Count > 0)
            {
                CheckBox chkAll = (CheckBox)Inbox.HeaderRow.Cells[0].FindControl("chkAll");
                for (int i = 0; i < Inbox.Rows.Count; i++)
                {
                    if (chkAll.Checked)
                    {
                        if (!arr.Contains(Inbox.DataKeys[i].Value))
                        {
                            arr.Add(Inbox.DataKeys[i].Value);
                        }
                    }
                    else
                    {
                        CheckBox chk = (CheckBox)Inbox.Rows[i].Cells[0].FindControl("chk");
                        if (chk.Checked)
                        {
                            if (!arr.Contains(Inbox.DataKeys[i].Value))
                            {
                                arr.Add(Inbox.DataKeys[i].Value);
                            }
                        }
                        else
                        {
                            if (arr.Contains(Inbox.DataKeys[i].Value))
                            {
                                arr.Remove(Inbox.DataKeys[i].Value);
                            }
                        }
                    }
                }

            }
            ViewState["SelectedRecords"] = arr;
        }



        private void DeleteRecord(string pmessageid)
        {
            string constr = ConfigurationManager.ConnectionStrings["omegaloveConnectionString"].ToString();
            string query = "delete from tbl_PMessage" + "where PMessageID=@pmessageid";
            SqlConnection con = new SqlConnection(constr);
            SqlCommand cmd = new SqlCommand(query, con);
            cmd.Parameters.AddWithValue("@pmessageid", pmessageid);
            con.Open();
            cmd.ExecuteNonQuery();
            con.Close();
        }


        protected void OnPaging(object sender, GridViewPageEventArgs e)
        {
            Inbox.PageIndex = e.NewPageIndex;
            Inbox.DataBind();
            SetData();
        }

        private void SetData()
        {
            int currentCount = 0;
            CheckBox chkAll = (CheckBox)Inbox.HeaderRow.Cells[0].FindControl("chkAll");
            chkAll.Checked = true;
            ArrayList arr = (ArrayList)ViewState["SelectedRecords"];
            for (int i = 0; i < Inbox.Rows.Count; i++)
            {
                CheckBox chk = (CheckBox)Inbox.Rows[i].Cells[0].FindControl("chk");
                if (chk != null)
                {
                    chk.Checked = arr.Contains(Inbox.DataKeys[i].Value);
                    if (!chk.Checked)
                        chkAll.Checked = false;
                    else
                        currentCount++;
                }
            }
            hfCount.Value = (arr.Count - currentCount).ToString();
        }


        protected void btnDelete_Click(object sender, EventArgs e)
        {
            int count = 0;
            SetData();
            Inbox.AllowPaging = false;
            Inbox.DataBind();

            ArrayList arr = (ArrayList)ViewState["SelectedRecords"];
            count = arr.Count;
            for (int i = 0; i < Inbox.Rows.Count; i++)
            {
                if (arr.Contains(Inbox.DataKeys[i].Value))
                {
                    DeleteRecord(Inbox.DataKeys[i].Value.ToString());
                    arr.Remove(Inbox.DataKeys[i].Value);
                }
            }
            ViewState["SelectedRecords"] = arr;
            hfCount.Value = "0";
            Inbox.AllowPaging = true;
            BindGrid();
            ShowMessage(count);

        }



        protected string DisplayDiscontinuedAsYESorNO(bool discontinued)
        {
            if (discontinued)
                return "YES";
            else
                return "NO";
        }

     


        protected bool IsSentItems
        {
            get
            {
                return (bool)ViewState["IsSentItems"];
            }
            set
            {
                ViewState["IsSentItems"] = value;
            }
        }

        private void ShowMessage(int count)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("<script type = 'text/javascript'>");
            sb.Append("alert('");
            sb.Append(count.ToString());
            sb.Append(" records deleted.');");
            sb.Append("</script>");
            Page.ClientScript.RegisterStartupScript(this.GetType(),
                            "script", sb.ToString());
        }

        protected void Inbox_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            Inbox.PageIndex = e.NewPageIndex;
            BindGrid();
        }

        protected void Inbox_RowDataBound(object sender, GridViewRowEventArgs e)
        {

            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#CADDFD';");
                if (e.Row.RowIndex % 2 == 0)
                { // even
                    e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#FFFFFF';");
                } // odd
                else
                {
                    e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#D5E5FC';");
                }

                HiddenField hdimageId = (HiddenField)e.Row.FindControl("hiddenImgID");

                System.Web.UI.WebControls.Image MainPicID = (System.Web.UI.WebControls.Image)(e.Row.FindControl("MainPicID"));

                MainPicID.ID = hdimageId.Value;
                MainPicID.ToolTip = "Thumbnail of Photo Number =" + hdimageId.Value;


                DataTable dtPhotos = new DataTable();
                dtPhotos = DataBase.Procedures.prc_Photos_Select_Primary.ToDataTable(ConnnectionString, Convert.ToInt32(hdimageId.Value));

                // Get img id from datatable.
                if (((dtPhotos != null) && (dtPhotos.Rows.Count > 0)))
                {
                    if (Convert.ToBoolean(dtPhotos.Rows[0]["p_Primary"]))
                    {
                        MainPicID.ImageUrl = "~/Secure/ShowThumbnail.ashx?img_id=" + dtPhotos.Rows[0]["PhotoID"].ToString() + "&" + "imagesize=T" + "&" + "imageisprimary=" + "True" + "'";
                    }

                }
                else
                {

                    // set default image
                }

            }

        }

        public static string GetConnectionString(string _connectionStringsName)
        {
            System.Configuration.ConnectionStringSettingsCollection config = System.Configuration.ConfigurationManager.ConnectionStrings;
            for (int i = 0; i < config.Count; i++)
            {
                if (config[i].Name.Equals(_connectionStringsName, StringComparison.OrdinalIgnoreCase))
                    return config[i].ToString();
            }
            return String.Empty;
        }


    }
}
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPages/TwoColumn.master" AutoEventWireup="true"
    CodeBehind="MailBox.aspx.cs" Inherits="OmegaLove.Web.UI.Pages.MailBox" %>

<%@ Register Assembly="System.Web.Ajax" Namespace="System.Web.UI" TagPrefix="asp" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<asp:Content ID="Content1" ContentPlaceHolderID="cph1" runat="server">
    <div id="bodyBlock">
        <div id="AccountPage" class="CommonPage">
            <table cellpadding="2" cellspacing="0">
                <tr>
                    <td class="cntbx">
                        <h1>
                            Mailbox</h1>
                        <p class="desc">
                            Check or manage all your read, unread or sent messages. Please note that messages
                            older than 30 days will be automatically deleted.
                        </p>
                        <div class="inbox">
                            <table cellpadding="5" cellspacing="0" class="head">
                                <tr>
                                    <td class="l">
                                        Folders:
                                    </td>
                                    <td class="r">
                                        <b><a href='https://secure.promatching.com/myaccount.aspx?tab=mailbox&mode=inbox'>Inbox</a></b>&nbsp;&nbsp;-&nbsp;&nbsp;<a
                                            href='https://secure.promatching.com/myaccount.aspx?tab=mailbox&mode=outbox'>Sent
                                            Items</a>
                                    </td>
                                </tr>
                            </table>
                            <table cellpadding="0" cellspacing="0" class="vitbl">
                                <tr>
                                    <td>
                                        <div style="float: right; padding-top: 1px;">
                                            (1/50)</div>
                                        <div class="usage">
                                            <div class="used" style="width: 2px">
                                                <em>2%</em></div>
                                        </div>
                                        <div style="float: right; padding-top: 1px;">
                                            Inbox Usage:</div>
                                    </td>
                                </tr>
                            </table>
                            <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Always" runat="server">
                                <ContentTemplate>
                                    <OmegaLove:ctrlInbox ID="ctrlInbox" runat="server" />
                                </ContentTemplate>
                            </asp:UpdatePanel>
                            <%--<table cellpadding="0" cellspacing="0" class="mbx" style="margin-top: 0;">
                                <tr>
                                    <th class="status" style="text-align: center">
                                        ?
                                    </th>
                                    <th class="cbox" style="text-align: center">
                                        <input id="ctl00_CPH1_ctl00_LVMessages_ctl01" type="checkbox" name="ctl00$CPH1$ctl00$LVMessages$ctl01"
                                            onclick="ToggleItems(this);" />
                                    </th>
                                    <th class="sender">
                                        From
                                    </th>
                                    <th class="titile">
                                        Title
                                    </th>
                                    <th class="date">
                                        Date
                                    </th>
                                </tr>
                                <tr>
                                    <td>
                                        <img src='https://secure.promatching.com/css/img/icon/16/mail-reply.gif' alt="" />
                                    </td>
                                    <td>
                                        <input id="ctl00_CPH1_ctl00_LVMessages_ctrl0_CBInboxItem" type="checkbox" name="ctl00$CPH1$ctl00$LVMessages$ctrl0$CBInboxItem" />
                                    </td>   
                                    <td class="sender" style="cursor: pointer" onclick='ShowMessage(8578)'>
                                        oliviababy
                                    </td>
                                    <td style="cursor: pointer" onclick='ShowMessage(8578)'>
                                        Hello Dear,
                                    </td>
                                    <td style="cursor: pointer" onclick='ShowMessage(8578)'>
                                        Aug-25-2010 10:36 AM
                                    </td>
                                </tr>
                            </table>--%>
                            <table cellpadding="5" cellspacing="0" class="legend">
                                <tr>
                                    <td style="width: 1%; white-space: nowrap; color: #678">
                                        Indicators:
                                    </td>
                                    <td>
                                        <div style="float: right">
                                            <span class="read">Read</span> <span class="new">Unread</span> <span class="reply">Replied</span><span
                                                class="delete">Deleted without reading</span></div>
                                    </td>
                                </tr>
                            </table>
                            <div style="margin-top: 15px; color: #696763; font-size: 8pt; float: left;">
                                <b style="margin-left: 5px">Note: </b><span>Messages older than 30 days will be automatically
                                    deleted.</span>
                            </div>
                        </div>
                    </td>
                </tr>
            </table>
        </div>
    </div>
</asp:Content>

Open in new window

0
 
InteqamCommented:
are you using Ajax?!
0
 
InteqamCommented:
can you do debugging to see what is null?

if not, try to log:
chk.Checked
arr.length
Inbox.DataKeys[i]
Inbox.DataKeys[i].Value

and see which one causes the problem
0
 
omegaloveAuthor Commented:
How should I update the page if it is in the grid is in a control?
0
 
omegaloveAuthor Commented:
hi I am not getting null any more just a problem deleting a refresh
0
 
omegaloveAuthor Commented:
Line: 976
Error: Sys.WebForms.PageRequestManagerServerErrorException: The DELETE statement conflicted with the REFERENCE constraint "FK_tbl_UserPMessage_tbl_PMessage". The conflict occurred in database "omegalove", table "dbo.tbl_UserPMessage", column 'PMessageID'.
The statement has been terminated.
what should I do?
0
 
omegaloveAuthor Commented:
l
0
 
InteqamCommented:
glad i helped/
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.