在使用ajax做页面时,碰到了一个问题。
页面使用的dev的PageControl控件,pagecontrol中多个tab每个TAB中有一个下拉框和一个gridview。需求是当下拉框改变时,同时修改gridview中的数据,但是不能影响其他tab中的数据。
实际情况是:变动下拉框时,跟踪代码的执行顺序,是把每个tab中的gridview都进行了更新。
请问,这该如何修改?
aspx代码: <dxtc:ASPxPageControl ID="ASPxPageControl3" runat="server" ActiveTabIndex="0"
Width="100%" OnActiveTabChanged="ASPxPageControl9_ActiveTabChanged"
CssClass="list">
<ActiveTabStyle BackColor="White">
<Border BorderColor="#FF9900" BorderStyle="Solid" BorderWidth="2px" />
</ActiveTabStyle>
<TabPages>
<dxtc:TabPage Text="月报(水源水)">
<TabStyle Font-Bold="True" Font-Names="宋体" Font-Overline="False"
Font-Size="10pt" Font-Strikeout="False">
</TabStyle>
<ContentCollection>
<dxw:ContentControl ID="ContentControl3" runat="server">
<asp:UpdatePanel ID="up_WaterSource_Month" runat="server">
<ContentTemplate>
<dxe:ASPxLabel ID="lb_WaterSource_Month" runat="server" Text="ASPxLabel">
</dxe:ASPxLabel>
<dxe:ASPxComboBox ID="cmb_WaterSource_Month" runat="server"
ValueType="System.String" AutoPostBack="True"
onselectedindexchanged="cmb_WaterSource_Month_SelectedIndexChanged"
Width="80px">
</dxe:ASPxComboBox>
<dxwgv:ASPxGridView ID="gv_WaterSource_Month" runat="server"
AutoGenerateColumns="False" Width="100%"
OnHtmlRowCreated="gv_WaterSource_Month_HtmlRowCreated" CssClass="list">
<Columns>
<dxwgv:GridViewDataTextColumn Caption="一月" FieldName="M01" Name="M01"
VisibleIndex="0" ReadOnly="true">
<DataItemTemplate>
<asp:Label ID="lb_M01" runat="server" Text="" />
</DataItemTemplate>
<HeaderStyle BackColor="#F1F4BB" HorizontalAlign="center" />
</dxwgv:GridViewDataTextColumn>
(省略后面的11列)
</Columns>
</dxwgv:ASPxGridView>
</ContentTemplate>
</asp:UpdatePanel>
</dxw:ContentControl>
</ContentCollection>
</dxtc:TabPage>
</TabPages>
<Paddings Padding="0px" />
<TabStyle BackColor="#F1F4BB">
<Border BorderWidth="1px" BorderColor="#CACACA" BorderStyle="Solid" />
</TabStyle>
</dxtc:ASPxPageControl>
CS代码:
代码过长,所以只贴了一个tab中的程序,其他tab类似protected void gv_WaterSource_Month_Init()
{
DataTable dt = new DataTable();
dt.Columns.Add("M01");
dt.Columns.Add("M02");
dt.Columns.Add("M03");
dt.Columns.Add("M04");
dt.Columns.Add("M05");
dt.Columns.Add("M06");
dt.Columns.Add("M07");
dt.Columns.Add("M08");
dt.Columns.Add("M09");
dt.Columns.Add("M10");
dt.Columns.Add("M11");
dt.Columns.Add("M12");
dt.Rows.Add("0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0");
gv_WaterSource_Month.DataSource = dt;
gv_WaterSource_Month.DataBind();
}
//中间省略了HtmlRowCreated事件
protected void cmb_WaterSource_Month_SelectedIndexChanged(object sender, EventArgs e)
{
lb_WaterSource_Month.Text = "当前年度: " + cmb_WaterSource_Month.Text + " 年";
gv_WaterSource_Month_Init();
}
页面使用的dev的PageControl控件,pagecontrol中多个tab每个TAB中有一个下拉框和一个gridview。需求是当下拉框改变时,同时修改gridview中的数据,但是不能影响其他tab中的数据。
实际情况是:变动下拉框时,跟踪代码的执行顺序,是把每个tab中的gridview都进行了更新。
请问,这该如何修改?
aspx代码: <dxtc:ASPxPageControl ID="ASPxPageControl3" runat="server" ActiveTabIndex="0"
Width="100%" OnActiveTabChanged="ASPxPageControl9_ActiveTabChanged"
CssClass="list">
<ActiveTabStyle BackColor="White">
<Border BorderColor="#FF9900" BorderStyle="Solid" BorderWidth="2px" />
</ActiveTabStyle>
<TabPages>
<dxtc:TabPage Text="月报(水源水)">
<TabStyle Font-Bold="True" Font-Names="宋体" Font-Overline="False"
Font-Size="10pt" Font-Strikeout="False">
</TabStyle>
<ContentCollection>
<dxw:ContentControl ID="ContentControl3" runat="server">
<asp:UpdatePanel ID="up_WaterSource_Month" runat="server">
<ContentTemplate>
<dxe:ASPxLabel ID="lb_WaterSource_Month" runat="server" Text="ASPxLabel">
</dxe:ASPxLabel>
<dxe:ASPxComboBox ID="cmb_WaterSource_Month" runat="server"
ValueType="System.String" AutoPostBack="True"
onselectedindexchanged="cmb_WaterSource_Month_SelectedIndexChanged"
Width="80px">
</dxe:ASPxComboBox>
<dxwgv:ASPxGridView ID="gv_WaterSource_Month" runat="server"
AutoGenerateColumns="False" Width="100%"
OnHtmlRowCreated="gv_WaterSource_Month_HtmlRowCreated" CssClass="list">
<Columns>
<dxwgv:GridViewDataTextColumn Caption="一月" FieldName="M01" Name="M01"
VisibleIndex="0" ReadOnly="true">
<DataItemTemplate>
<asp:Label ID="lb_M01" runat="server" Text="" />
</DataItemTemplate>
<HeaderStyle BackColor="#F1F4BB" HorizontalAlign="center" />
</dxwgv:GridViewDataTextColumn>
(省略后面的11列)
</Columns>
</dxwgv:ASPxGridView>
</ContentTemplate>
</asp:UpdatePanel>
</dxw:ContentControl>
</ContentCollection>
</dxtc:TabPage>
</TabPages>
<Paddings Padding="0px" />
<TabStyle BackColor="#F1F4BB">
<Border BorderWidth="1px" BorderColor="#CACACA" BorderStyle="Solid" />
</TabStyle>
</dxtc:ASPxPageControl>
CS代码:
代码过长,所以只贴了一个tab中的程序,其他tab类似protected void gv_WaterSource_Month_Init()
{
DataTable dt = new DataTable();
dt.Columns.Add("M01");
dt.Columns.Add("M02");
dt.Columns.Add("M03");
dt.Columns.Add("M04");
dt.Columns.Add("M05");
dt.Columns.Add("M06");
dt.Columns.Add("M07");
dt.Columns.Add("M08");
dt.Columns.Add("M09");
dt.Columns.Add("M10");
dt.Columns.Add("M11");
dt.Columns.Add("M12");
dt.Rows.Add("0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0");
gv_WaterSource_Month.DataSource = dt;
gv_WaterSource_Month.DataBind();
}
//中间省略了HtmlRowCreated事件
protected void cmb_WaterSource_Month_SelectedIndexChanged(object sender, EventArgs e)
{
lb_WaterSource_Month.Text = "当前年度: " + cmb_WaterSource_Month.Text + " 年";
gv_WaterSource_Month_Init();
}
我用过UpdatePanel,好像不行。