Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 文本和视图状态存在问题_C#_Asp.net - Fatal编程技术网

C# 文本和视图状态存在问题

C# 文本和视图状态存在问题,c#,asp.net,C#,Asp.net,我在这里尝试创建一个链接到webhosting购物车进程的模块 第一步应该有一个带有“添加”按钮的文本字段。此按钮检查域的可用性并将其添加到列表中 这里的目标基本上是显示域验证列表,并以RadioBox的形式给出适当的操作(如果是免费的,则注册,否则转移,或者直接指向域) 所以基本上我检查可用性,然后在占位符中添加一个文本控件 问题是viewstate(当我向前和向后移动时,我丢失了我对域所做的选择) html: ( ... ) <asp:MultiView ID="mvF

我在这里尝试创建一个链接到webhosting购物车进程的模块

第一步应该有一个带有“添加”按钮的文本字段。此按钮检查域的可用性并将其添加到列表中

这里的目标基本上是显示域验证列表,并以RadioBox的形式给出适当的操作(如果是免费的,则注册,否则转移,或者直接指向域)

所以基本上我检查可用性,然后在占位符中添加一个文本控件

问题是viewstate(当我向前和向后移动时,我丢失了我对域所做的选择)

html:

( ... )
        <asp:MultiView ID="mvFlow" runat="server" ActiveViewIndex="0">
            <asp:View ID="vDomain" runat="server" onactivate="vDomain_Activate">

                <asp:TextBox ID="txtDomain" runat="server" style="margin-bottom: 0px" 
                    Width="254px"></asp:TextBox>
                    &nbsp;<asp:Button ID="domainAdd" runat="server" onclick="domainAdd_Click" 
                    style="height: 26px" Text="Ajouter" />
                &nbsp;<br />
                <br />
                <asp:PlaceHolder ID="phDomainResults" runat="server"></asp:PlaceHolder>
                <br />
                <br />
                <asp:LinkButton ID="lbDomainSkip" runat="server" onclick="lbDomainSkip_Click">Prochaine 
                étape »</asp:LinkButton>

            </asp:View>
( ... )
(…)




前链 磁带» ( ... )
其背后基本上是这样的:

lt.文本=

                    "<dl>" +
                        "<dt><strong>" + txtDomain.Text + "</strong> <span style='color:green;'>Le domaine est disponible</span></dt>" +
                        "<dd><input type='radio' name='" + txtDomain.Text.Replace('.', '_') + "_action' value='register' /> Register</dd>" +
                        "<dd><input type='radio' name='" + txtDomain.Text.Replace('.', '_') + "_action' value='transfert' disabled='disabled' /> Transfert</dd>" +
                        "<dd><input type='radio' name='" + txtDomain.Text.Replace('.', '_') + "_action' value='point' /> Point</dd>" +
                    "</dl>";
“”+
“”+txtDomain.Text+“Le domaine est disponsible”+
“登记册”+
“转让”+
“点”+
"";
一定有可能让事情变得更合理、更简单

根据我的建议,我这样做了:

LiteralControl lt = new LiteralControl();
RadioButtonList rl = new RadioButtonList();

lt.Text = "<strong>" + txtDomain.Text + "</strong> <span style='color:green;'>Le domaine est disponible</span>";
rl.Items.Add(new ListItem { Enabled = true, Selected = true, Text = "Enregistrement", Value = "register" });
rl.Items.Add(new ListItem { Enabled = false, Selected = false, Text = "Transfert", Value = "transfert" });
rl.Items.Add(new ListItem { Enabled = true, Selected = false, Text = "Pointer moi même", Value = "point" });
//phDomainResults is a PlaceHolder in the page
phDomainResults.Controls.Add(lt);
phDomainResults.Controls.Add(rl);
LiteralControl lt=new LiteralControl();
RadioButtonList rl=新的RadioButtonList();
lt.Text=“”+txtDomain.Text+”Le domaine est disponible”;
添加(新列表项{Enabled=true,Selected=true,Text=“Enregistrement”,Value=“register”});
添加(新列表项{Enabled=false,Selected=false,Text=“Transfert”,Value=“Transfert”});
添加(新列表项{Enabled=true,Selected=false,Text=“Pointer moiême”,Value=“point”});
//phDomainResults是页面中的占位符
phDomainResults.Controls.Add(lt);
phDomainResults.Controls.Add(rl);

似乎不太管用…

如果需要使用视图状态,那么您是正确的,您不能使用文本。(或者更具体地说,你可以这样做,但这会相当麻烦


您可能应该动态生成一个asp RadioButtonList元素,并将其添加到占位符中。您的页面将能够在viewstate中记住RadioButtonList。

如果需要使用view state,则您是正确的,您不能使用文字。(或者更具体地说,您可以,但这将非常麻烦。)


您可能应该动态生成asp RadioButtonList元素,并将其添加到占位符中。您的页面将能够在viewstate中记住RadioButtonList。

我将在代码中的viewstate集合中存储相关信息,并在每次页面加载时清除占位符值,然后重新呈现并添加就像你现在的样子。这样你就不必担心ASP.Net会保存什么和不会保存什么。

我会将相关信息存储在ViewState集合中,并在每次加载页面时清除占位符值,然后像现在一样重新呈现和添加文字。这样你就不必担心ASP.Net会保存什么,不会保存什么。ASP.Net保存视图状态很好:它会保存文本的内容,就像它应该保存的一样。但是,文本的内容只是标记(带有单选按钮的
),而不是用户对这些按钮所做的操作

因为您正在动态地将单选按钮添加到HTML中,所以ASP.NET页面不“知道”它们


您可以尝试使用RadioButtonList来代替文本控件中的单选按钮。

ASP.NET保存视图状态很好:它保存了文本的内容,就像它应该保存的那样。但是,文本的内容只是标记(带有单选按钮的
),而不是用户对这些按钮所做的操作

因为您正在动态地将单选按钮添加到HTML中,所以ASP.NET页面不“知道”它们


与其在文字控件中吐出单选按钮,不如尝试使用RadioButton列表。

似乎不起作用,当我返回时,RadioButton列表已消失。似乎不起作用,当我返回时,RadioButton列表已消失。