2009-08-13 2 views
0

У меня есть два расширителя выносок валидатора ajax, которые запрограммированы через VB.net. Я проверяю одно текстовое поле, но хочу, чтобы всплывающее окно появилось рядом с другим текстовым полем. Как я могу показать всплывающее окно ajax, где будет отображаться?Можно ли динамически позиционировать ValidatorCalloutExtender?

Dim custval As New CustomValidator 
    custval.ID = "ValidPage" 
    custval.ErrorMessage = "<font color=red>Please Enter a 'To' Date" 
    custval.SetFocusOnError = True 
    custval.ForeColor = Drawing.Color.Red 
    custval.EnableClientScript = True 
    custval.ControlToValidate = cell.Controls(18).ID 
    custval.ClientValidationFunction = "ClientValidate" 
    custval.Display = ValidatorDisplay.None 
    Dim custvalex As New AjaxControlToolkit.ValidatorCalloutExtender 
    custvalex.ID = "VCEcustval" 
    custvalex.TargetControlID = "ValidPage" 
    custvalex.HighlightCssClass = "validatorCalloutHighlight" 
    '--------------------------------------------------------------- 
    Dim custval2 As New CustomValidator 
    custval2.ID = "ValidPage2" 
    custval2.ErrorMessage = "<font color=red>Please Enter a 'From' Date" 
    custval2.SetFocusOnError = True 
    custval2.ForeColor = Drawing.Color.Red 
    custval2.EnableClientScript = True 
    custval2.ControlToValidate = cell.Controls(23).ID 
    custval2.ClientValidationFunction = "ClientValidate2" 
    custval2.Display = ValidatorDisplay.None 

    Dim custvalex2 As New AjaxControlToolkit.ValidatorCalloutExtender 
    custvalex2.ID = "VCEcustval2" 
    custvalex2.TargetControlID = "ValidPage2" 
    custvalex2.HighlightCssClass = "validatorCalloutHighlight" 
    cell.Controls.Add(custval) '27 
    cell.Controls.Add(custvalex2) '28 
    cell.Controls.Add(custval2) '29 
    cell.Controls.Add(custvalex) '30 


function ClientValidate(sender, args) { 
    // Get Both form fields 
    var hid = $get('<%=HiddenField1.ClientID%>'); 
    var hid2 = $get('<%=HiddenField2.ClientID %>'); 
    var hidval = hid.value; 
    var hid2val = hid2.value; 
    var txtdate1 = $get(hidval); 
    var txtdate2 = $get(hid2val); 
    // do you client side check to make sure they have something 
    if (txtdate1.value != '' && txtdate2.value == '') { 
     args.IsValid = false; 
    } 
    else { 
     args.IsValid = true; 
    } 
} 
function ClientValidate2(sender, args) { 
    // Get Both form fields 
    var hid = $get('<%=HiddenField1.ClientID%>'); 
    var hid2 = $get('<%=HiddenField2.ClientID %>'); 
    var hidval = hid.value; 
    var hid2val = hid2.value; 
    var txtdate1 = $get(hidval); 
    var txtdate2 = $get(hid2val); 
    // do you client side check to make sure they have something 
    if (txtdate2.value != '' && txtdate1.value == '') { 
     args.IsValid = false; 
    } 
    else { 
     args.IsValid = true; 
    } 
} 

Я знаю, что эти две функции javascript можно разделить. Но как я могу переместить всплывающее окно?

ответ

0

Возможно, вам придется управлять позиционированием его с помощью CSS или javascript. Я не знаю, как это сделать с помощью свойств серверного элемента управления.

Here is a forum thread, показывающий, как переместить всплывающее окно валидатора, используя методы set_x и set_y javascript для выноски.

+0

Я принял ваш ответ, потому что мне пришлось позиционировать его через CSS – Eric

Смежные вопросы