这可能是有史以来最大的菜鸟问题,但我很困惑为什么我的私有变量在一种方法中设置时会在另一种方法中重置。我的代码中有这样的东西:
namespace Project.Messages
{
public partial class Inbox : System.Web.UI.Page
{
private static int selectedIndex;
private static string messageIDString;
private static int messageID;
//select message to view
protected void viewMessage(object sender, GridViewCommandEventArgs e)
{
//get index
selectedIndex = MsgInbox.SelectedIndex;
if (int.TryParse(e.CommandArgument.ToString(), out selectedIndex))
{
//get selected dataKey, convert to a int
messageIDString = MsgInbox.DataKeys[selectedIndex].Value.ToString();
messageID = Convert.ToInt16(messageIDString);
}
}
//select message to delete
protected void delBTN_Click(object sender, EventArgs e)
{
SqlCommand com = new SqlCommand("DELETE FROM Messages WHERE MessageID = @param1", conn);
conn.Open();
com.Parameters.AddWithValue("param1", messageID);
}
因此,如果我单击一条消息,则会设置 messageID 并显示该消息。但是,当我在那之后单击删除消息时,看起来变量正在重置/与以前设置的值不同。我是否需要使用静态变量或其他东西来实现这一点?
谢谢