无效的回发事件而不是数据网格的下拉列表

时间:2013-10-14 03:31:12

标签: asp.net gridview postback

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

换句话说,我试着解释一下情况: 当我加载我的页面时,我正在初始化一些参数。然后一切都很好。在我的页面中,当我更改我的组合框的选定项目时,页面假设去运行与该组合框相关的函数,并调用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>

1 个答案:

答案 0 :(得分:1)

您好从页面指令中删除enableeventvalidation="false" EnableViewState="true"