1

Save ImageButton이 포함 된 양식의 gridview가 있습니다. 그리드가 비어 있는지 여부를 검사하는 클라이언트 측 CustomValidator를 생성하려고합니다. 비어 있으면 사용자에게 오류 메시지를 던지고 싶습니다.저장 버튼을 클릭했을 때 gridview의 유효성을 검사하는 방법은 무엇입니까?

이것은 내 코드입니다.

<asp:GridView ID="MyGridView" runat="server" 
         AutoGenerateColumns="False" 
         OnRowCancelingEdit="gridView_RowCancelingEdit" 
         OnRowCommand="gridView_RowCommand" 
         OnRowDataBound="gridView_RowDataBound" 
         OnRowEditing="gridView_RowEditing" 
         OnRowUpdating="gridView_RowUpdating" 
>....</GridView> 

<asp:CustomValidator id="cvFabricCollection" runat="server"             
ErrorMessage="Please enter at least one row" 
ControlToValidate="gridView" 
ValidationGroup="MyGroup" 
ClientValidationFunction ="ValidateGrid"> 
</asp:CustomValidator> 

<asp:ImageButton ID="Save_btn" 
ImageUrl="images/save.gif" 
runat="server" 
CausesValidation="True" 
ValidationGroup="MyGroup" 
OnClick="Save_btn_Click"/> 

자바 스크립트 : 내가 잘못 뭘하는지에

function ValidateGrid(sender, args) 
{ 
    var rowscount = document.getElementByID(<%=MyGridView.ClientID%>).rows.length; 
    alert(rowscount); 
    if(rowscount <= 1) 
    { 
     args.IsValid = false; 
     return; 
    } 
    args.IsValid = true; 
}     

모든 아이디어 페이지가 유효한 경우 "Save_btn_Click"이벤트에서, 나는 확인?

감사합니다. 코드의 라인 아래

답변

0

사용하여있는 gridview의 행 수를 얻을 수 있습니다 :

var rowscount = document.getElementByID(<%=Gridview1.ClientID%>).rows.length; 
if(rowcount >0) 
{ 
    alert("your message"); 
} 

참조 : ASP.NET GridView row count using Javascript

How to count the rows in a gridview in asp.net using jQuery

+0

나는 업데이트 내 자바 스크립트 (원래의 게시물을 볼)을 사용하여 코드를 제공했지만 여전히 작동하지 않습니다 ... 코드를 디버깅하는 동안 첫 번째 "Save_btn_Click"함수가 나타났습니다. 그런 다음 "ValidateGrid"함수에 전달하지만 모든 경고 메시지가 나타나지 않으면 아무 것도하지 않는 것 같습니다. 감사합니다 –

+0

@Joe S : 시도해주세요. 매개 변수없이 자바 스크립트의 별도 기능을 만들고, 행 개수 코드를 넣은 다음 SAVEBUTTON의 onClientClick 이벤트에서 호출하십시오. –

0
function PassengerGrid(source, args) { 
    var Grid1 = document.getElementById("<%=GridviewPassenger.ClientID%>"); 
    if (Grid1 == null) { 
     args.IsValid = false; 
    } 
    else if (Grid1.rows.length <= 0) 
    { 
     args.IsValid = false; 
    } 
    else { 
     args.IsValid = true; 
    } 
} 
+0

코드를 게시하기보다는 대답에 설명을 추가해야합니다. –

관련 문제