Як выкарыстоўваць JavaScript валідацыю для элементаў кіравання ўсярэдзіне ListView EditTemplate?

У Nridubai сайт, я выкарыстоўваю ListView EditTemplate для рэдагавання. У маёй EditTemplate, ёсць элементы кіравання, як ..


І яшчэ некалькі элементаў кіравання, як DropDownList, элементы кіравання каландара. Цяпер я хачу, каб праверыць з дапамогай JavaScript на гэтых элементах кіравання, але не працую.

Напрыклад.

var eventStatus=document.getElementById("<%=txtEditEventName.ClientID%>").value;

Я не з дапамогай элементаў кіравання праверкі. Калі ласка, дапамажыце мне, як выкарыстоўваць JavaScript для праверкі на EditTemplate кіравання? Мая структура EditTemplate, як наступнае:


                                        <td class="command">
                                        
                                        </td>
                                        <div class="header">View Details for '<%# Eval("event_name")%>'</div>

                                    <tr>
                                        <td class="edit" colspan="6" >
                                            <div class="details">
                                                <table class="detailview"  cellpadding="0" cellspacing="0">
                                                <tr>


                <td>Event Name:</td>
                <td>
                    
                </td>
                 <td>VenueAddress :</td>
                <td>
                    
                </td>

                </tr>


                <tr>

                <td>Country :</td>
                <td>

                    



                </td>


                <td>Event Status:</td>
                <td>
                
                                        -Select-

 In-Progress
Completed
Aborted

  

                </td>


                </tr>
                <tr>
                <td>Category :</td>
                <td>
                       
                </td>
                </tr>
                 <tr>
                <td>Start Date:</td>
                <td>
                    
                </td>
                <td>End Date:</td>
                <td>
                    
                </td>


                </tr>






                                                </table>
                                               <div class="footer command">
                                                
                                                </div>
                                            </div>
                                        </td>
                                    </tr>
                            
2
нам трэба больш, чым даць вам працоўны код для праверкі значэнняў. Даць нам поўную разметку edittemplate
дададзена аўтар Deeptechtons, крыніца

2 адказы

Вы можаце атрымаць доступ да элементаў на ItemDataBound і выпускаюць ClientIDs для вашага JavaScript для выкарыстання:

<Моцны> ItemDataBound:

protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e)
{
    StringBuilder vars= new StringBuilder();

    if (ListView1.EditItem != null)
    {
        TextBox txtEditStartDate = ListView1.EditItem.FindControl("txtEditStartDate") as TextBox;
        TextBox txtEditEndDate = ListView1.EditItem.FindControl("txtEditEndDate") as TextBox;

        //example JS, however I recommend passing the ClientIDs to functions
        vars.Append(String.Format("var txtEditStartDate='{0}';" txtEditStartDate.ClientID);
        vars.Append(String.Format("var txtEditStartDate='{0}';", txtEditEndDate.ClientID );
        ClientScriptManager.RegisterStartUpScript(this.GetType(), "validationVars", vars.ToString(), true);
    }
}

***Old Answer, the .NET way************

<Моцны> EditTemplate:


*
                    

<Моцны> JS:

function txtEditEventNameClientValidate(sender, args) { 
    if (args.Value == '') {
        args.IsValid = false; //field is empty      
        //so something
    } 
    else {
        //do something
    }
}
1
дададзена
Thankssss ... Я хачу толькі JavaScript. і я выкарыстаў уаг V = $ ( '# <% = txtEditEventName.ClientID%>'); Але гэта паказвае, памылка аленевая скура Exists .. Калі ласка, дапамажыце мне .........
дададзена аўтар Uday Satardekar, крыніца
Сэр я Адрэдагуйце код, як StringBuilder Вары = новы StringBuilder (); vars.Append (String.Format ( "пераменная txtEditStartDate = '{0}';", listCat.ClientID)); Page.ClientScript.RegisterStartupScript (this.GetType (), "validationVars", vars.ToString (), TRUE); Цяпер, як атрымаць гэтыя значэння на баку кліента ......
дададзена аўтар Uday Satardekar, крыніца
Я паспрабаваў атрымаць гэтыя 2 GlobalVariable (txtEditStartDate і txtEditStartDate) .Ён працуе добра на ў нармальным button.but, калі я паставіць гэты код у OnItemUpdating выпадку на LinkButton EditTemplate ў яе не працуе. EX vars.Append (String.Format ( "пераменная txtEditStartDate12 = '{0}';", "CRM")); Я прайшоў толькі радок, каб праверыць.
дададзена аўтар Uday Satardekar, крыніца
Глядзіце абнаўленне, дадаў яшчэ адзін спосаб перадаць ClientIDs на баку кліента.
дададзена аўтар rick schott, крыніца
На жаль пра памылку, што радок у кодзе .NET шляху не павінна была быць там, я выдаліў яго.
дададзена аўтар rick schott, крыніца
Яны будуць глабальныя зменныя Js (txtEditStartDate і txtEditStartDate). Паспрабуйце папярэджваючы іх у функцыі праверкі.
дададзена аўтар rick schott, крыніца

Змесціце JavaScript праверкі ў самой EditTemplate. Такім чынам, калі ён перамыкаецца ў рэжым рэдагавання, кіраванне будзе ў кантэксце.

0
дададзена
Што дакладная памылка.
дададзена аўтар Brian Mains, крыніца
Я паставіў код яваскрипта ў editTemplate, але дае мне тую ж памылку.
дададзена аўтар Uday Satardekar, крыніца
Я не знаходзячы кіравання Edittemplate у JavaScript для праверкі.
дададзена аўтар Uday Satardekar, крыніца