As far as I've come to know, a language must have it's own grammar to be one, else it is a dialect. Do you guys also agree with it?
Among other things, this really depends on how you define grammar. Do you mean in terms of individual linguistic structures, or in terms of an actually codified, scientific acknowledged grammar?
Truth is, there are no universally acknowledged criteria as to what constitutes the difference between a dialect and a language. Even linguists often use the terms interchangeably when talking about related languages. The labels tend to be attributed according to other criteria, such as cultural or ethnic identity.
For example, by your criterion of "having its own grammar", Hindi and Urdu would be the same language, because their grammatical features are virtually identical. Both derive from Hindusthani. However, their vocabularies are completely different, and Urdu is far easier to understand for a Persian speaker than for a Hindi speaker because of that. Their identities are also linked to different cultural backgrounds. On the other hand, the two main dialects of Kurdish, Sorani and Kurmanci, are mutually unintelligible based on their completely different grammatical structures, yet they are considered both by Kurdish speakers and by linguists to be dialects of the same language. This is based on the cultural and ethnic identity of speakers, not linguistic criteria. Then there are cases such as Farsi, Dari and Tajik, which differ from each other about as much as British, American and Australian English, and which share the same cultural and literary history, but which are considered three distinct languages even within the same countries.