Я знаю, что этот тип вопросов задавался несколько раз, с решенными ответами.Я перепробовал их все, но ничего из этого не помогло.Пожалуйста, посмотрите и, возможно, помогите мне понять, где я иду не так.
.aspx
<asp:view ID="view2" runat="server">
<asp:GridView ID="gvBatches" runat="server" AutoGenerateColumns="False" CssClass="table-hover table" GridLines="None" Width="900px" ShowFooter="True" >
<columns>
<asp:BoundField DataField="bname" HeaderText="Batch Name" />
</columns>
</asp:GridView>
</asp:view>
.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
if (ViewState["query"] == null)
{
ViewState["query"] = "select course from tblCourses";
}
if (MultiView1.ActiveViewIndex == '1')
{
bindgrid1();
}
bindgrid();
}
}
protected void bindgrid1()
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString);
DataTable dt1 = new DataTable();
using (SqlDataAdapter sda = new SqlDataAdapter(ViewState["query"].ToString(), con))
{
sda.Fill(dt1);
}
gvBatches.DataSource = dt1;
gvBatches.DataBind();
}
if (e.CommandName == "viewbat")
{
ViewState["query"] = "select bname from tblBatches where course='" + e.CommandArgument.ToString() + "'";
MultiView1.ActiveViewIndex = 1;
}
Индекс многовидового просмотра изменяется при нажатии LinkButton (commandName = "viewbat") на другом GridView (gvCourses с datafield = "course", и это прекрасно работает).
Код выдает ту же ошибку, даже если запрос изменяется на простой:
select * from tblBatches
Дизайн базы данных:
Дизайн базы данных такой, как показано, состоит из 'bname'