Як використовувати перевірки JavaScript для елементів керування в ListView EditTemplate?

На веб-сайті Nridubai я використовую прапорець EditTemplate для редагування. На моїй панелі EditTemplate є елементи керування, наприклад ..


І ще кілька елементів управління, як dropdownlist, керування календарем. Тепер я хочу перевірити використання JavaScript на цих елементах керування, але не працює.

Наприклад.

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

Я не використовую елементи перевірки. Будь ласка, допоможіть мені, як використовувати JavaScript для перевірки на елементах керування 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. і я використав var v = $ ('# <% = txtEditEventName.ClientID%>'); Але це показує помилку doesnot існує .. Будь ласка, допоможіть мені .........
додано Автор Uday Satardekar, джерело
Сер я Редагувати код, як StringBuilder vars = новий StringBuilder (); vars.Append (String.Format ("var txtEditStartDate = '{0}';", listCat.ClientID)); Page.ClientScript.RegisterStartupScript (this.GetType (), "validationVars", vars.ToString (), true); тепер, як отримати ці значення на стороні клієнта ......
додано Автор Uday Satardekar, джерело
Я намагався отримати ці 2 globalVariable (txtEditStartDate і txtEditStartDate). Він працює добре на нормальному button.but, коли я поклав цей код в OnItemUpdating події на EditTemplate в LinkButton його не працює. EX vars.Append (String.Format ("var txtEditStartDate12 = '{0}';", "CRm")); Я пройшов лише рядок для перевірки.
додано Автор Uday Satardekar, джерело
Див. Оновлення, додав ще один спосіб передачі ClientID на клієнтську сторону.
додано Автор rick schott, джерело
Вибачте за помилку, що рядок у коді .NET не міг бути там, я його видалив.
додано Автор rick schott, джерело
Вони будуть глобальними змінними JS (txtEditStartDate і txtEditStartDate). Спробуйте сповістити їх у функції перевірки.
додано Автор rick schott, джерело

Помістіть перевірку JavaScript на самій панелі редагування. Таким чином, коли він перемикається в режим редагування, управління буде в контексті.

0
додано
Яка точна помилка.
додано Автор Brian Mains, джерело
Я ставлю код JavaScript у editTemplate, але це дає мені ту ж помилку.
додано Автор Uday Satardekar, джерело
Я не знаходжу контролів Edittemplate в JavaScript для перевірки.
додано Автор Uday Satardekar, джерело
var chat = new Chat();
var chat = new Chat();
642 учасників

Обсуждение вопросов по C# / .NET / .NET Core / .NET Standard / Azure Сообщества-организаторы: — @itkpi — @dncuug