没有从页面获取变量...提交到数据库

时间:2014-03-02 21:10:25

标签: c# asp.net forms

我无法获取该网页发布到我的网页的值。

表单可能有点令人困惑,但基本上在页面加载时它显示内容...如果登录的用户显示编辑按钮,他们可以单击将视图更改为我的表单,他们可以在其中编辑页。

然后他们点击保存按钮,然后按钮将数据提交到数据库。

这是我提交的表格。

<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部分......任何帮助都会很棒!

1 个答案:

答案 0 :(得分:0)

想出来!当我调用linktitle变量时,它不存在,因为即使我在页面刷新时将其声明为公共变量,它也会删除变量。

通过将信息放在隐藏的字段中来解决这个问题...我确信还有另一种方法可以做到这一点,但我无法弄清楚如何。