Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在asp.net 4.0中更新行时从控件获取新值_C#_Asp.net - Fatal编程技术网

C# 如何在asp.net 4.0中更新行时从控件获取新值

C# 如何在asp.net 4.0中更新行时从控件获取新值,c#,asp.net,C#,Asp.net,我在行更新方面有一个小问题。我现在正在使用可编辑网格视图,在行更新时,我遇到了一个问题,我无法从控件中获取新值。我在所有网站上搜索这个问题,我发现了这个 但是,我将这些设置为行更新: protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { ........... Session["StartAlpha"] = "All";

我在行更新方面有一个小问题。我现在正在使用可编辑网格视图,在行更新时,我遇到了一个问题,我无法从控件中获取新值。我在所有网站上搜索这个问题,我发现了这个

但是,我将这些设置为行更新:

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
          ...........
          Session["StartAlpha"] = "All";
          Session["GroupByENTYPE"] = -1;
          Session["ColumnName"] = null;
          Session["SearchtText"] = null;
          this.FillGrid((String)Session["StartAlpha"] ?? null, (int)Session["GroupByENTYPE"], (String)Session["ColumnName"] ?? null, (String)Session["SearchText"] ?? null);
    }
 }

protected void GV_ViewCustomers_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
    GridViewRow row = GV_ViewCustomers.Rows[e.RowIndex];
    int customerid = Convert.ToInt32(GV_ViewCustomers.DataKeys[e.RowIndex].Value.ToString());
    if (!string.IsNullOrEmpty(e.NewValues["Name"].ToString()) && !e.NewValues["type_id"].ToString().Equals("-1"))
    {
        using (DataClassesDataContext db = new DataClassesDataContext())
        {
            string owname = null, ownmono = null, room = null, build = null, road = null, area = null, city = null, mobile = null, phone = null, email = null, cpname = null, cpmono = null, remark = null;
            bool? UserOFC = null, UserVAT = null, UserINV = null, UserNone = null;
            int? country_id = null, state_id = null;
            if (!string.IsNullOrEmpty(e.NewValues["Ownername"].ToString().Trim()))
            {
                owname = e.NewValues["Ownername"].ToString().Trim();
            }
            if (!string.IsNullOrEmpty(e.NewValues["Ownermob"].ToString().Trim()))
            {
                ownmono = e.NewValues["Ownermob"].ToString().Trim();
            }
            if (!string.IsNullOrEmpty(e.NewValues["ContactPerson"].ToString().Trim()))
            {
                cpname = e.NewValues["ContactPerson"].ToString().Trim();
            }
            if (!string.IsNullOrEmpty(e.NewValues["ContactPersonmob"].ToString().Trim()))
            {
                cpmono = e.NewValues["ContactPersonmob"].ToString().Trim();
            }
            if (!string.IsNullOrEmpty(e.NewValues["Phone"].ToString().Trim()))
            {
                phone = e.NewValues["Phone"].ToString().Trim();
            }
            if (!string.IsNullOrEmpty(e.NewValues["Mobile"].ToString().Trim()))
            {
                mobile = e.NewValues["Mobile"].ToString().Trim();
            }
            if (!string.IsNullOrEmpty(e.NewValues["Room"].ToString().Trim()))
            {
                room = e.NewValues["Room"].ToString().Trim();
            }
            if (!string.IsNullOrEmpty(e.NewValues["Build"].ToString().Trim()))
            {
                build = e.NewValues["Build"].ToString().Trim();
            }
            if (!string.IsNullOrEmpty(e.NewValues["Road"].ToString().Trim()))
            {
                road = e.NewValues["Road"].ToString().Trim();
            }
            if (!string.IsNullOrEmpty(e.NewValues["Area"].ToString().Trim()))
            {
                area = e.NewValues["Area"].ToString().Trim();
            }
            if (!string.IsNullOrEmpty(e.NewValues["City"].ToString().Trim()))
            {
                city = e.NewValues["City"].ToString().Trim();
            }
            if (!e.NewValues["country_id"].ToString().Equals("-1"))
            {
                country_id = int.Parse(e.NewValues["country_id"].ToString());
            }
            if (!e.NewValues["state_id"].ToString().Equals("-1"))
            {
                state_id = int.Parse(e.NewValues["state_id"].ToString());
            }
            if (!string.IsNullOrEmpty(e.NewValues["Email"].ToString().Trim()))
            {
                email = e.NewValues["Email"].ToString().Trim();
            }
            if (!string.IsNullOrEmpty(e.NewValues["Remark"].ToString().Trim()))
            {
                remark = e.NewValues["Remark"].ToString().Trim();
            }
            UserOFC = bool.Parse(e.NewValues["UserOFC"].ToString());
            UserVAT = bool.Parse(e.NewValues["UserVAT"].ToString());
            UserINV = bool.Parse(e.NewValues["UserINV"].ToString());
            UserNone = bool.Parse(e.NewValues["UserNone"].ToString());
            db.UpdateParty(e.NewValues["Name"].ToString().Trim(), int.Parse(e.NewValues["type_id"].ToString()), owname, ownmono, room, build, road, area, city, phone, mobile, email, cpname, cpmono, UserOFC, UserVAT, UserINV, UserNone, state_id, country_id, remark, db.Users.Where(u => u.Username.Equals((String)Session["Username"])).Select(u => u.Ref_no).FirstOrDefault(), customerid);
            db.SubmitChanges();
            GV_ViewCustomers.EditIndex = -1;
            this.FillGrid((String)Session["StartAlpha"] ?? null, (int)Session["GroupByENTYPE"], (String)Session["ColumnName"] ?? null, (String)Session["SearchText"] ?? null);
            UpdatePanel10.Update();
            MPE.Show();
        }
    }
}
protected void GV_ViewCustomers_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow && e.Row.RowState == DataControlRowState.Edit)
        {
            using (DataClassesDataContext db = new DataClassesDataContext())
            {
                DropDownList dl = (DropDownList)e.Row.FindControl("DDL_Types1");
                dl.DataSource = db.PartyTypes.Select(t => t).ToList();
                dl.DataBind();
                dl.SelectedValue = DataBinder.Eval(e.Row.DataItem, "type_id").ToString();
                DropDownList dl1 = (DropDownList)e.Row.FindControl("DDL_CountryNames1");
                dl1.DataSource = db.Countries.Select(c => c).ToList();
                dl1.DataBind();
                if (!string.IsNullOrEmpty(DataBinder.Eval(e.Row.DataItem, "country_id").ToString()))
                {
                    dl1.SelectedValue = DataBinder.Eval(e.Row.DataItem, "country_id").ToString();
                    DropDownList dl2 = (DropDownList)e.Row.FindControl("DDL_StateNames1");
                    dl2.DataSource = db.States.Where(s => s.country_id.Equals(int.Parse(DataBinder.Eval(e.Row.DataItem, "country_id").ToString()))).Select(s => s).ToList();
                    dl2.DataBind();
                }
                DataRowView rowView1 = (DataRowView)e.Row.DataItem;
                if (rowView1["UserOFC"] != null)
                {
                    (e.Row.FindControl("chk_UserOFC1") as CheckBox).Checked = Convert.ToBoolean(e.Row.DataItem.Equals("UserOFC").ToString());
                }
                if (rowView1["UserVAT"] != null)
                {
                    (e.Row.FindControl("chk_UserVAT1") as CheckBox).Checked = Convert.ToBoolean(e.Row.DataItem.Equals("UserVAT").ToString());
                }
                if (rowView1["UserINV"] != null)
                {
                    (e.Row.FindControl("chk_UserINV1") as CheckBox).Checked = Convert.ToBoolean(e.Row.DataItem.Equals("UserINV").ToString());
                }
                if (rowView1["UserNone"] != null)
                {
                    (e.Row.FindControl("chk_UserNone1") as CheckBox).Checked = Convert.ToBoolean(e.Row.DataItem.Equals("UserNone").ToString());
                }
            }
        }
    }
更新 这是我的第二个网格视图aspx标记:

<asp:UpdatePanel ID="UpdatePanel18" runat="server" UpdateMode="Conditional">
                                        <ContentTemplate>
                                         <asp:GridView ID="GV_ViewReasons" runat="server" AllowPaging="True" 
            AllowSorting="True" AutoGenerateColumns="False" CellPadding="4" ShowFooter="True"
            GridLines="None" Width="100%" 
            DataKeyNames="Id" onrowcommand="GV_ViewReasons_RowCommand" onrowdatabound="GV_ViewReasons_RowDataBound" 
                                                onsorting="GV_ViewReasons_Sorting" 
                                                ondatabound="GV_ViewReasons_DataBound" 
                                                onpageindexchanging="GV_ViewReasons_PageIndexChanging" 
                                                onprerender="GV_ViewReasons_PreRender" 
                                                onrowediting="GV_ViewReasons_RowEditing" 
                                                onrowupdating="GV_ViewReasons_RowUpdating" 
                                                onrowcancelingedit="GV_ViewReasons_RowCancelingEdit" 
                                                onrowdeleting="GV_ViewReasons_RowDeleting" HorizontalAlign="Left">
            <RowStyle CssClass="grid" HorizontalAlign="Left" />
            <Columns>
                <asp:TemplateField>
                    <EditItemTemplate>
                        <asp:ImageButton ID="imgbtnUpdate" CommandName="Update" runat="server" ImageUrl="../images/1366376844_001_06.gif" ToolTip="Update" Height="20px" Width="20px" ValidationGroup="EditCharge" CausesValidation="false"/>
<asp:ImageButton ID="imgbtnCancel" runat="server" CommandName="Cancel" ImageUrl="../images/1366376484_001_05.png" ToolTip="Cancel" Height="20px" Width="20px" />
                    </EditItemTemplate>
                    <FooterTemplate>
<asp:ImageButton ID="imgbtnAdd" runat="server" ImageUrl="../images/1398687211_plus-sign.png" 
                            CommandName="AddNew" Width="24px" Height="24px" ToolTip="Add new reason" 
                            ValidationGroup="AddNewReason" CausesValidation="false"/>
                    </FooterTemplate>
                    <ItemTemplate>
                    <table>
                    <tr>
                    <td><asp:ImageButton ID="imgbtnEdit" CommandName="Edit" runat="server" ImageUrl="../images/1366376599_001_45.png" ToolTip="Edit" Height="20px" Width="20px" /></td>
                    <td><asp:ImageButton ID="imgbtnDelete" CommandName="Delete" Text="Edit" runat="server" ImageUrl="../images/1366377028_Cancel.png" ToolTip="Delete" Height="20px" Width="20px" /></td>
                    </tr>
                    </table>
                    </ItemTemplate>
                    <HeaderStyle CssClass="headinglist_bg" HorizontalAlign="Left" />
                    <ItemStyle HorizontalAlign="Left" />
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Reason" SortExpression="ReasonText">
                    <HeaderStyle CssClass="headinglist_bg" HorizontalAlign="Left" />
                    <ItemTemplate>
                        <asp:LinkButton ID="lbut_reason" runat="server"
                            CommandArgument='<%# Eval("Id") %>' CommandName="Select" 
                            Text='<%# Eval("ReasonText").ToString().Length > 50 ? Eval("ReasonText").ToString().Substring(0,50)+"...":Eval("ReasonText") %>' 
                            ToolTip='<%# Bind("ReasonText") %>'></asp:LinkButton>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox ID="txt_reason1" runat="server" CssClass="input" 
                            ValidationGroup="UpdateReason" Text='<%# Eval("ReasonText") %>'></asp:TextBox>
                        <ajaxToolkit:TextBoxWatermarkExtender ID="txt_reason1_TextBoxWatermarkExtender" 
                            runat="server" Enabled="True" TargetControlID="txt_reason1" 
                            WatermarkText="Enter reson text">
                        </ajaxToolkit:TextBoxWatermarkExtender>
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
                            ControlToValidate="txt_reason1" Display="None" 
                            ErrorMessage="Reason text is required" SetFocusOnError="True" 
                            ValidationGroup="UpdateReason"></asp:RequiredFieldValidator>
                        <ajaxToolkit:ValidatorCalloutExtender ID="ValidatorCalloutExtender12" 
                            runat="server" CloseImageUrl="~/images/close.gif" 
                            TargetControlID="RequiredFieldValidator2" 
                            WarningIconImageUrl="~/images/Warning.gif">
                        </ajaxToolkit:ValidatorCalloutExtender>
                    </EditItemTemplate>
                    <FooterTemplate>
                        <asp:TextBox ID="txt_reason" runat="server" CssClass="input" 
                            ValidationGroup="AddNewReason"></asp:TextBox>
                        <ajaxToolkit:FilteredTextBoxExtender ID="txt_reason_FilteredTextBoxExtender" 
                            runat="server" Enabled="True" 
                            FilterType="Custom, UppercaseLetters, LowercaseLetters" 
                            TargetControlID="txt_reason" ValidChars=" ,.">
                        </ajaxToolkit:FilteredTextBoxExtender>
                        <ajaxToolkit:TextBoxWatermarkExtender ID="txt_reason_TextBoxWatermarkExtender" 
                            runat="server" Enabled="True" TargetControlID="txt_reason" 
                            WatermarkText="Enter reson text">
                        </ajaxToolkit:TextBoxWatermarkExtender>
                          <asp:RequiredFieldValidator 
                            ID="RequiredFieldValidator1" 

                            runat="server" 
                            ErrorMessage="Reason text is required" 

                            ControlToValidate="txt_reason" 
                            ValidationGroup="AddNewReason"

                            Display="None" SetFocusOnError="True"></asp:RequiredFieldValidator>

            <ajaxToolkit:ValidatorCalloutExtender ID="ValidatorCalloutExtender12" runat="server" TargetControlID="RequiredFieldValidator1" WarningIconImageUrl="~/images/Warning.gif" CloseImageUrl="~/images/close.gif" >
                                                                                            </ajaxToolkit:ValidatorCalloutExtender>
                    </FooterTemplate>
                    <HeaderTemplate>
                        <asp:LinkButton ID="lbut_sortreason" runat="server" 
                            CommandArgument="ReasonText" CommandName="Sort" CssClass="normaltext" 
                            Font-Bold="true" Text="Reason"></asp:LinkButton>
                        <asp:PlaceHolder ID="placeholderreason" runat="server"></asp:PlaceHolder>
                    </HeaderTemplate>
                    <ItemStyle CssClass="quicklink" HorizontalAlign="Left" />
                </asp:TemplateField>
            </Columns>
            <EmptyDataRowStyle BorderWidth="0px" Width="0px" HorizontalAlign="Left"/>
            <EmptyDataTemplate>
                <asp:Label ID="Label2" runat="server" ForeColor="Red" 
                    Text="No Records are found"></asp:Label>
            </EmptyDataTemplate>
            <PagerStyle CssClass="pager" HorizontalAlign="Left" VerticalAlign="Middle" />
            <PagerTemplate>
                <table>
                    <tr>
                        <td>
                            <asp:ImageButton ID="ImageButton5" runat="server" 
                                AlternateText="Go to First Page" CommandArgument="First" CommandName="Page" 
                                ImageUrl="../images/1330128819_resultset_first.png" />
                        </td>
                        <td>
                            <asp:ImageButton ID="ImageButton6" runat="server" AlternateText="Previous Page" 
                                CommandArgument="Prev" CommandName="Page" 
                                ImageUrl="../images/1330128981_resultset_previous.png" />
                        </td>
                        <td>
                            Page&nbsp;<asp:DropDownList ID="ddlPages1" runat="server" AutoPostBack="True" 
                                Width="50px" onselectedindexchanged="ddlPages1_SelectedIndexChanged">
                            </asp:DropDownList>
                            of
                            <asp:Label ID="lblPageCount1" runat="server"></asp:Label>
                        </td>
                        <td>
                            <asp:ImageButton ID="ImageButton7" runat="server" AlternateText="Next Page" 
                                CommandArgument="Next" CommandName="Page" 
                                ImageUrl="../images/Farm-Fresh_resultset_next.png" />
                        </td>
                        <td>
                            <asp:ImageButton ID="ImageButton9" runat="server" 
                                AlternateText="Go to Last Page" CommandArgument="Last" CommandName="Page" 
                                ImageUrl="../images/1330128876_resultset_last.png" />
                        </td>
                    </tr>
                </table>
            </PagerTemplate>
            <FooterStyle CssClass="pager" VerticalAlign="Bottom" />
        </asp:GridView>
                                        </ContentTemplate>
                                            <Triggers>
                                              <asp:AsyncPostBackTrigger ControlID="GV_ViewReasons" EventName="RowCommand"/>
                                              <asp:AsyncPostBackTrigger ControlID="GV_ViewReasons" EventName="RowUpdating" />
                                              <asp:AsyncPostBackTrigger ControlID="GV_ViewReasons" EventName="RowDeleting" />
                                            </Triggers>
                                        </asp:UpdatePanel>

页
属于

Shal,您编写的用于绑定网格的代码不是Postback吗?请参阅关于
GridViewUpdateEventArgs。NewValues
只需调用grid Bind方法,就可以用更新的值绑定gridview。@Grundy ya我更新了我的问题,只需再次查看即可。@Shal,您能提供
FillGrid
函数吗?您在
e.NewValues
中看到值了吗?它更正了新的值,而您在客户端上看不到更改?