0

我遇到了有趣的情况。我创建了一个有价值的页面,我设置了这些值并控制了我的回发事件。当我更改组件索引时出现问题(例如重新选择不在我的数据网格内的组合框)然后我不知道为什么没有我的页面调用 Page_Load 它会在网格函数中创建一个新行并且我的所有参数都是空的!我只是收到空异常。

所以换句话说,我试图解释这种情况:当我加载我的页面时,我正在初始化一些参数。然后一切正常。在我的页面中,当我更改组合框的选定项目时,页面假设去运行与该组合框相关的函数,并调用 page_load,但它不会去那里,而是转到 rowcreated 函数。

我试图说明我的页面的一部分。请帮助我,因为除了 null 异常之外我没有收到任何错误,即使这对我来说似乎很复杂,它也会触发错误。

public partial class W_CM_FRM_02 : System.Web.UI.Page
{
   protected void Page_Load(object sender, EventArgs e)
    {
      if (Page.IsPostBack && !loginFail)
            return;
        InitializeItems();
    }
}

   private void InitializeItems()
    {
    cols = new string[] { "v_classification_code", "v_classification_name" };
        arrlstCMMM_CLASSIFICATION = (ArrayList)db.Select(cols, "CMMM_CLASSIFICATION", "v_classification_code <> 'N'", " ORDER BY v_classification_name");
      }

     }

   protected void DGV_RFA_DETAILS_RowCreated(object sender, GridViewRowEventArgs e)
    {
     //db = (Database)Session["oCon"];
        foreach (DataRow dr in arrlstCMMM_CLASSIFICATION)
            ((DropDownList)DGV_RFA_DETAILS.Rows[index].Cells[4].FindControl("OV_RFA_CLASSIFICATION")).Items.Add(new ListItem(dr["v_classification_name"].ToString(), dr["v_classification_code"].ToString()));
}

 protected void V_CUSTOMER_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (V_CUSTOMER.SelectedValue == "xxx" || V_CUSTOMER.SelectedValue == "ddd")
            V_IMPACTED_FUNCTIONS.Enabled = true;
    }

}

我的表格:

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" 
AutoEventWireup="true" CodeFile="W_CM_FRM_02.aspx.cs" 
Inherits="W_CM_FRM_02" Title="W_CM_FRM_02" enableeventvalidation="false" EnableViewState="true"%>
  <td>Project name*</td>        
        <td><asp:DropDownList ID="V_CUSTOMER" runat="server" AutoPostBack="True" 
                onselectedindexchanged="V_CUSTOMER_SelectedIndexChanged"  /></td>
 <td colspan = "8">
        <asp:GridView ID="DGV_RFA_DETAILS" runat="server" ShowFooter="True" AutoGenerateColumns="False"
            CellPadding="1" ForeColor="#333333" GridLines="None" OnRowDeleting="grvRFADetails_RowDeleting"
            Width="100%" Style="text-align: left" 
            onrowcreated="DGV_RFA_DETAILS_RowCreated">
        <RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
            <Columns>
                <asp:BoundField DataField="ON_RowNumber" HeaderText="SNo" />
                <asp:TemplateField HeaderText="RFA/RAD/Ticket No*">
                    <ItemTemplate>
                        <asp:TextBox ID="OV_RFA_NO" runat="server"  Width="120"></asp:TextBox>
                    </ItemTemplate>
                </asp:TemplateField>

4

1 回答 1

1

enableeventvalidation="false" EnableViewState="true",从您的页面指令中删除。

于 2013-10-24T21:51:08.490 回答