AMcoder - javascript, python, java, html, php, sql

Փոխեք վերահսկողության արժեքը GridView խմբագրման ձևանմուշում

Ես ունեմ GridView և պետք է կարողանամ ծրագրային կերպով փոխել TextBox-ի արժեքը խմբագրման ձևանմուշում: Երբ ես փորձում եմ մուտք գործել այն onRowDataBound-ի ընթացքում, ես ստանում եմ սա.

Բացառության մանրամասներ. System.NullReferenceException. Օբյեկտի հղումը սահմանված չէ օբյեկտի օրինակով:

Կարծում եմ, որ onRowDataBound մեթոդի ներսում խմբագրման ձևանմուշների վերահսկիչները հասանելի չեն: Երբ ես փորձում եմ խմբագրել TextBox-ի արժեքը onRowEditing մեթոդով, այնուամենայնիվ, GridViewEditEventArgs օբյեկտի համար .Row տարբերակ չկա, այնպես որ թվում է, որ դուք չեք կարող մուտք գործել խմբագրման ձևանմուշի կառավարներ onRowEditing մեթոդով նույնպես:

Կա՞ գաղափար, թե ինչպես ծրագրային կերպով փոխել TextBox-ի արժեքը GridView-ի խմբագրման ձևանմուշում:

ASP.NET WebForms, .NET 4.0, C#

====

Խմբագրել # 1. Սա այն է, ինչ ես ներկայումս ունեմ: txtMiles օբյեկտը RowEditing-ում դառնում է զրոյական:

<asp:TemplateField HeaderText="Miles Frequency">
                    <ItemTemplate>
                        <asp:Label ID="lblFreqMiles" runat="server" Text='<%# Eval("FrequencyMiles") %>'></asp:Label>
                    </ItemTemplate>                    
                    <EditItemTemplate >
                        <asp:TextBox ID="txtFreqMiles" runat="server" Text='<%# Eval("FrequencyMiles")%>'  Width="50px"></asp:TextBox>
                        <asp:RequiredFieldValidator runat="server" ID="req1" ControlToValidate="txtFreqMiles" ErrorMessage="*" />
                        <asp:CompareValidator ID="CompareValidator1" runat="server" Operator="DataTypeCheck" Type="Integer" ControlToValidate="txtFreqMiles" ErrorMessage="Value must be a whole number." />
                    </EditItemTemplate>
                </asp:TemplateField>


    protected void gvMaint_RowEditing(object sender, GridViewEditEventArgs e)
            {
                //format Miles Frequency column
                GridViewRow row = grvMaint.Rows[e.NewEditIndex];
                TextBox txtMiles = (TextBox)row.FindControl("txtFreqMiles");
                if (txtMiles.Text == "999999")
                {
                    //do stuff
                }

                grvMaint.EditIndex = e.NewEditIndex;
                populateMaintGrid();
            }

Պատասխանները:


1

Պարզապես համոզվեք, որ տողը խմբագրման ռեժիմում է, նախքան փորձեք և ստանալ վերահսկողությունը.

protected void gvMaint_RowDataBound(Object sender, GridViewRowEventArgs e)
{
    if(e.Row.RowState == DataControlRowState.Edit)
    {
        TextBox txtFreqMiles = (TextBox)e.Row.FindControl("txtFreqMiles");

        // At this point, you can change the value as normal
        txtFreqMiles.Text = "some new text";
    }
}
05.02.2014
  • Շնորհակալություն, բայց սա տալիս է զրոյական հղման բացառություն. Օբյեկտի հղումը սահմանված չէ օբյեկտի օրինակով: Ես համոզվեցի, որ կանեմ այն ​​բոլոր ակնհայտ բաները, ինչպիսիք են փոխել ձերTextBoxID-ը կառավարման իրական ID-ին: Այն բացառություն է տալիս, երբ ես փորձում եմ մուտք գործել TextBox օբյեկտի .Text արժեքը: TextBox օբյեկտը զրոյական է: 05.02.2014
  • @flying227 Ես ապուշ եմ, կարծում եմ։ Թարմացվել է իմ պատասխանը: Ես մտածում եմ (հիմնվելով ձեր մեկնաբանության վրա), որ ձեզ անհրաժեշտ է, որ տողը լինի տվյալների կապ, որպեսզի հսկողությունը այնտեղ լինի, այնպես որ դուք պետք է օգտագործեք RowDataBound իրադարձությունը: Բայց դուք պետք է համոզվեք, որ Row-ը խմբագրման ռեժիմում է: 05.02.2014
  • Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..