我无法获取该网页发布到我的网页的值。
表单可能有点令人困惑,但基本上在页面加载时它显示内容...如果登录的用户显示编辑按钮,他们可以单击将视图更改为我的表单,他们可以在其中编辑页。
然后他们点击保存按钮,然后按钮将数据提交到数据库。
这是我提交的表格。
<asp:Content ID="Content4" ContentPlaceHolderID="Title" Runat="Server">
<asp:MultiView ID="TitleLanguage" runat="server">
<asp:View ID="EnglishT" runat="server"><asp:Label ID="en_title" runat="server"/></asp:View>
<asp:View ID="FrenchT" runat="server"><asp:Label ID="fr_title" runat="server"/></asp:View>
<asp:View ID="EditT" runat="server">
<asp:TextBox ID="Edit_EnglishT" runat="server" />
<asp:TextBox ID="Edit_FrenchT" runat="server" />
</asp:View>
</asp:MultiView>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="PageContent" Runat="Server">
<asp:LoginView runat="server" ID="EditLoginView"><LoggedInTemplate><div id="logged">
<asp:Button ID="EditButton" runat="server" OnClick="btnEdit_Click" Text="Edit Page" CssClass="loggedbutton" PostBackUrl="~/page.aspx"/>
<asp:Button ID="SaveButton" runat="server" OnClick="btnSave_Click" visible="false" Text="Save" CssClass="loggedbutton" PostBackUrl="~/page.aspx" UseSubmitBehavior="true" />
</div>
</LoggedInTemplate></asp:LoginView>
<asp:MultiView ID="LanguageView" runat="server">
<asp:View ID="English" runat="server"><asp:Label ID="en_content" runat="server"/></asp:View>
<asp:View ID="French" runat="server"><asp:Label ID="fr_content" runat="server"/></asp:View>
<asp:View ID="Edit" runat="server">
<h1>English Page</h1>
<asp:TextBox ID="Edit_English" runat="server" TextMode="MultiLine" Height="400px" />
<h1>French Page</h1>
<asp:TextBox ID="Edit_French" runat="server" TextMode="MultiLine" Height="400px" />
</asp:View>
</asp:MultiView>
</asp:Content>
这是我用来获取变量的代码。
protected void btnSave_Click(object sender, EventArgs e)
{
Button EditButton = (Button)EditLoginView.FindControl("EditButton");
Button SaveButton = (Button)EditLoginView.FindControl("SaveButton");
//update the file in the database
String strConnString = System.Configuration.ConfigurationManager.ConnectionStrings["randolphConnectionString"].ConnectionString;
using(SqlConnection con = new SqlConnection(strConnString))
using(SqlCommand cmd = con.CreateCommand())
{
string strQuery = " UPDATE pages SET en_content = @en_Content, fr_Content = @fr_content, fr_Title=@fr_title, en_Title=@en_title, last_update=@last_update WHERE link_title = @link";
cmd.CommandText= strQuery;
cmd.Parameters.Add("@en_title", SqlDbType.VarChar).Value = Edit_EnglishT.Text;
cmd.Parameters.Add("@fr_title", SqlDbType.VarChar).Value = Edit_FrenchT.Text;
cmd.Parameters.Add("@en_content", SqlDbType.VarChar).Value = Edit_English.Text;
cmd.Parameters.Add("@fr_content", SqlDbType.VarChar).Value = Edit_French.Text;
cmd.Parameters.Add("@last_update", SqlDbType.DateTime).Value = DateTime.Now;
cmd.Parameters.Add("@link", SqlDbType.VarChar).Value = linktitle;
cmd.Connection.Open();
cmd.ExecuteNonQuery();
TitleLanguage.ActiveViewIndex = 0;
LanguageView.ActiveViewIndex = 0;
EditButton.Visible = true;
SaveButton.Visible = false;
loadpage();
}
我是asp.net的新手所以我正在尝试使用我所知道的asp经典来拉...基本上我缺少的是request.form部分......任何帮助都会很棒!
答案 0 :(得分:0)
想出来!当我调用linktitle变量时,它不存在,因为即使我在页面刷新时将其声明为公共变量,它也会删除变量。
通过将信息放在隐藏的字段中来解决这个问题...我确信还有另一种方法可以做到这一点,但我无法弄清楚如何。