Из подробностей вашего вопроса я не уверен, хочет ли ваш босс, чтобы сетка не была привязана или не хотела, чтобы страница раздувалась с помощью ViewState сетки, но, по моему опыту, обычно это последнее.Однако, если ваш босс просто не хочет привязывать сетку в условии «if (! Postback)» и не возражает, если он связан или использует ViewState, тогда ваш босс не понимает веб-разработку с использованием C # и на стороне сервераcontrol.
Но ... чтобы ответить на ваш вопрос, причина, по которой все флажки сняты, заключается в том, что вы привязываете сетку ПОСЛЕ применения ViewState.ViewState содержит все данные, необходимые в условии обратной передачи, чтобы установить состояние флажков во время обратной передачи, и применяет эти данные до события OnLoad (или Page_Load).Связывая сетку, вы по сути стираете все, что было отправлено обратно во ViewState и применено.Чтобы преодолеть это, отключите ViewState для сетки и самостоятельно установите состояние флажков ПОСЛЕ ТОГО, КАК вы перепривязываете сетку с использованием коллекции FORM.
Если вы хотите покончить с ViewState, вот несколько советов в этой статье,http://www.codeproject.com/KB/viewstate/DataGridViewState.aspx