2012-05-11 1 views
3

어떻게 JavaScript에서 gridview 내부의 버튼을 클릭하여 텍스트 상자의 빈 유효성 검사를 적용 할 수 있습니까? 2 개의 텍스트 상자와 각 row.I의 저장 버튼을 포함하는 gridview는 해당 저장 버튼 클릭에 대한 텍스트 박스의 유효성을 검사하고 싶습니다.텍스트 상자를 적용하는 방법 버튼을 클릭하면 자바 스크립트를 사용하여 asp.net의 gridview 안쪽에 빈 유효성 검사?

로직을 적용했지만 하드 코드 된 textBox ID에서만 작동하는 것이 문제입니다.이 코드를 수정하여 모든 gridview 행에서 작동하도록 할 수 있습니까?

function gvValidate() { 

var grid = document.getElementById('<%= GridViewCTInformation.ClientID %>'); 
if(grid!=null) 
    { 
    var Inputs = grid.getElementsByTagName("input"); 
    for(i = 0; i < Inputs.length; i++) 
    { 
     if(Inputs[i].type == 'text') 
     { 
      if (Inputs[i].id == 'ctl00_contentPlaceHolderSubScreen_GridViewCTInformation_ctl02_TextBoxCTTermCode') 
      { 
       if (Inputs[i].value == "") { 
        alert("Enter values,blank is not allowed"); 
        return false; 
       } 

      } 
      else if (Inputs[i].id == 'ctl00_contentPlaceHolderSubScreen_GridViewCTInformation_ctl02_TextBoxCTTermDesc') { 
       if (Inputs[i].value == "") { 
        alert("Enter values,blank is not allowed"); 
        return false; 
       } 
      } 

     } 
    } 
    return true; 
} 

}

Protected Sub GridViewTaxInformation_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridViewTaxInformation.RowDataBound 
    Try 
     If e.Row.RowType = DataControlRowType.DataRow Then 

      Dim btnSave As Button = DirectCast(e.Row.FindControl("ButtonSave"), Button) 
      btnSave.Attributes.Add("onclick", "return gvValidate()") 
     End If 
    Catch ex As Exception 
     Common.WriteLog(ex.Message) 
     Common.WriteLog((ex.StackTrace)) 
     Response.Redirect("..\Errors.aspx", False) 
    End Try 
End Sub 
+0

당신이 모든 행에 대해 무엇을 뜻합니까에게입니까? –

+0

사실 나는 각 행에 2 개의 텍스트 상자와 저장 버튼이있는 gridview가 있습니다. 저장 버튼이 클릭 된 특정 레코드의 유효성을 검사하고 싶습니다. – Priyansh

+0

다음과 같은 유효성 검사 컨트롤을 사용하지 않는 이유는 무엇입니까? RequiredFieldValidator –

답변

2
마지막으로

내 problem..I의 솔루션을 가지고 그냥 자바 스크립트에있는 gridview의 행의 인덱스를 통과 한 모든 입력을 검증하기 위해 제어 기능.

여기에 코드

function gvValidate(rowIndex) { 

var grid = document.getElementById('<%= GridViewCTInformation.ClientID %>'); 
if(grid!=null) { 
    var Inputs = grid.rows[rowIndex + 1].getElementsByTagName("input"); 
    for(i = 0; i < Inputs.length; i++) 
    { 
     if(Inputs[i].type == 'text') 
     { 
        if (Inputs[i].value == "") { 
        alert("Enter values,blank is not allowed"); 
        return false; 
       } 

     } 
    } 
    return true; 
} 

}

Protected Sub GridViewCTInformation_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridViewCTInformation.RowDataBound 
    Try 
     If e.Row.RowType = DataControlRowType.DataRow Then 
      Dim btnSave As Button = DirectCast(e.Row.FindControl("ButtonCTInfoSave"), Button) 
      btnSave.Attributes.Add("onclick", "return gvValidate(" + e.Row.RowIndex.ToString() + ")") 
     End If 
    Catch ex As Exception 
     Common.WriteLog(ex.Message) 
     Common.WriteLog((ex.StackTrace)) 
     Response.Redirect("..\Errors.aspx", False) 
    End Try 
End Sub 
+0

답이 맞으면 향후 사용자가 알 수 있도록 받아들입니다. – Yatrix

1

는 ID를 확인하지 마십시오. 단순히 공백 값을 확인하십시오.

if(Inputs[i].type == 'text') 
{ 

      if (Inputs[i].value == "") { 
       alert("Enter values,blank is not allowed"); 
       return false; 
      } 

    } 
+0

UR 응답을 주셔서 감사합니다.하지만 모든 입력 컨트롤을 확인하지 않아도됩니다. 저장 단추가 클릭 된 텍스트 상자 만 유효성을 검사하려면 어떻게해야합니까? – Priyansh

+0

버튼 개체에서 행의 참조를 가져온 다음 해당 행의 입력 상자를 확인할 수 있습니다. (나는 둘 다 같은 줄에 있다고 믿는다.) 그리드의 dom 구조를 이해하는 데 도움이되는 html 파일을 출력에 게시하면된다. –

0
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="*" ControlToValidate="the name of your textbox to be validated" ForeColor="Red"></asp:RequiredFieldValidator> 

당신이 검증을 사용할 수 있습니다 U 도움이 될 수 있습니다하려고하는 것은

관련 문제