私はasp.netプロジェクトの最後の〜6ヶ月間、別のコントロールでロードされていた.aspxの1つでした。このページとそれらのコントロールには独自のUpdatePanelsなどがありました。言い換えれば、私はviewstateの問題のバッグに対処しなければなりませんでした。私がviewstateとその詳細を完全に得ると思うたびに、私は以下で説明するようなものを得ます。これは制御状態と関係しているかもしれませんが、これは私が「必要な」ビューステートを理解できないからです。または、これはAJAXで何かをしなければならないかもしれません。 はとにかく、この例を見てみましょう:ViewstateとTabPanel
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" EnableViewState="false" Inherits="ControlDisabledViewStateTesting._Default" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
<script language="C#" runat="server">
protected void Page_Load(object sender, EventArgs e)
{
if (treeView.SelectedNode != null)
ContentPanel.Controls.Add(ContentPanel.TemplateControl.LoadControl("MyUserControl.ascx"));
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<ajx:ToolkitScriptManager runat="server" />
<asp:TreeView ID="treeView" runat="server">
<Nodes>
<asp:TreeNode Text="First Node" Value="111"/>
<asp:TreeNode Text="Second Node" Value="222"/>
</Nodes>
</asp:TreeView>
<Asp:Panel ID="ContentPanel" runat="server" />
</div>
</form>
</body>
</html>
そして、ここでは、ユーザーコントロールのマークがアップしている:あなたが気づいたよう
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MyUserControl.ascx.cs" Inherits="ControlDisabledViewStateTesting.MyUserControl" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajx" %>
<ajx:TabContainer ID="tabContainer" ActiveTabIndex="0" runat="server">
<ajx:TabPanel ID="tab" HeaderText="Tab1" runat="server"/>
<ajx:TabPanel ID="tab2" HeaderText="Tab2" runat="server" />
</ajx:TabContainer>
、のViewStateは、ページ・レベルでオフになっていないので、のどれれますコントロールはviewstateを使用する必要があります。 「最初のノード」をクリックします。 ユーザーコントロールには2つのタブが読み込まれます。 2番目のタブを選択します。 「2番目のノード」をクリック 「2番目のタブ」がすでに選択された状態で、ユーザーコントロールが再度読み込まれます。
これはviewstate/controlstateの問題ですか、それともTabPanelのAJAX部分と関係していますか?
ここで何が起きているのか、どうすればこの機能を無効にできるのか、誰かが気をつけてくれたら本当に感謝しています。
おかげで、 マイク