我是一个相对较新的开发人员,并且只在全职工作了大约6个月,所以提前感谢您阅读和/或回答我的问题
我有一个数据中转中继器.在这个中继器中,我有一个gridview,sqlDS和2个复选框.两个复选框都有一个OnCheckedChanged事件,Autopostback设置为true.转发器也有一个OnItemDataBound事件.
以下是我的代码布局的示例:
<asp:Repeater ID="Repeater1" OnItemDataBound="Repeater1_ItemDataBound"> <ItemTemplate> <asp:Panel> <asp:UpdatePanel> <ContentTemplate> <asp:CheckBox ID="CheckBox1" Autopostback="True" OnCheckedChanged="CheckBox1_CheckedChanged"> <asp:CheckBox ID="CheckBox2"Autopostback="True" OnCheckedChanged="CheckBox2_CheckedChanged"> <asp:Gridview ID="Gridview1" DataSourceID="sqlDataSource1"> <asp:sqlDataSource ID="sqlDataSource1" SelectCommand="SP1" SelectCommandType="StoredProcedure"> </ContentTemplate> </asp:UpdatePanel> </asp:Panel> </ItemTemplate> </asp:Repeater>
和C#
protected void CheckBox1_CheckedChanged(object sender,EventArgs e) { if (CheckBox1.Checked == true) { if (CheckBox2.Checked == true) sqlDataSource1.SelectCommand = "SP1"; else sqlDataSource1.SelectCommand = "SP2"; } else sqlDataSource1.SelectCommand = "SP3"; } protected void CheckBox2_CheckedChanged(object sender,EventArgs e) { if (CheckBox2.Checked == true) { if (CheckBox1.Checked == true) sqlDataSource1.SelectCommand = "SP3"; else sqlDataSource1.SelectCommand = "SP2"; } else sqlDataSource1.SelectCommand = "SP1"; } protected void Repeater1_ItemDataBound(object sender,RepeaterItemEventArgs e) { //Uses FindControl to Databind the GV and hides it if GV.Rows.Count==0 }
我正在AJAX TabPanel中完成所有这些工作.我有另一个页面,这段代码完美地工作,但它不在另一页的转发器内.
本质上,我有一个带有gridview的页面加载,这两个复选框改变了SP填充gridview的内容.我遇到的问题是当你取消选中复选框(它们开始检查)时,它1.只需重新检查自己和2.不要点击CheckedChanged事件.
任何帮助将不胜感激.