我的服务器上有文件夹中的图像数据库。要显示此图像,我正在使用DataList控件。 ItemTemplate还包含一个LinkButton
<asp:LinkButton ID="wybierzZdjecieBtn" OnClick="choosePhotoButton_Click" CommandArgument='<%#Eval("PhotoLinkAddress")%>' CssClass="wybierzZdjecieButton" runat="server">Choose photo</asp:LinkButton>
要从LinkButton CommandArgument接收值,我正在使用此方法:
protected void choosePhotoButton_Click(object sender, EventArgs e)
{
LinkButton button = (LinkButton)(sender);
string photoLinkAddressVar = button.CommandArgument.ToString();
Response.Write(PhotoLinkAddressVar);
}
这很好,没问题。但这不是我想要达到的目标。我的意图是发送这个变量&#34; PhotoLinkAddressVar&#34;这种方法:
protected void addNewNews_Click(object sender, EventArgs e)
{
string trescStatus = "czeka";
string autor = Session["userName"].ToString();
DateTime data = DateTime.Now;
string dataFormat = "";
dataFormat = data.ToString("dd/MM/yyyy H:mm");
string CS = ConfigurationManager.ConnectionStrings["wiadomosciConnection"].ConnectionString;
using (SqlConnection con = new SqlConnection(CS))
{
con.Open();
string dodaj = "Insert into News (TytulNews, TrescNews, Autor, Data, Kategoria, Dotyczy, PhotoLinkAddress, Status) values (@TytulNews, @TrescNews, @Autor, @Data, @Kategoria, @Dotyczy, @PhotoLinkAddress, @Status)";
SqlCommand com = new SqlCommand(dodaj, con);
com.Parameters.AddWithValue("@TytulNews", tytulNewsTextBox.Text);
com.Parameters.AddWithValue("@TrescNews", trescTextBox.Text);
com.Parameters.AddWithValue("@Autor", autor);
com.Parameters.AddWithValue("@Data", dataFormat);
com.Parameters.AddWithValue("@Kategoria", kategoria.SelectedValue.ToString());
com.Parameters.AddWithValue("@Dotyczy", dotyczy.SelectedValue.ToString());
com.Parameters.AddWithValue("@PhotoLinkAddress", photoLinkAddressVar);
com.Parameters.AddWithValue("@Status", trescStatus);
com.ExecuteNonQuery();
}
}
用户必须在按下&#34;添加新闻&#34;之前选择照片,因为如果他不这样做,他将收到错误消息。我不知道,怎么做。我试图在PageLoad之前声明一些公共变量,并做这样的事情:
protected void choosePhotoButtonButton_Click(object sender, EventArgs e)
{
LinkButton button = (LinkButton)(sender);
photoLinkAddressVar = button.CommandArgument.ToString();
}
但该方法不会声明变量。你有什么想法,我怎么能实现这个目标?
答案 0 :(得分:0)
您也可以使用ViewState
。
protected void choosePhotoButton_Click(object sender, EventArgs e)
{
LinkButton button = (LinkButton)(sender);
string photoLinkAddressVar = button.CommandArgument.ToString();
View["photoLinkAddressVar"]=photoLinkAddressVar;
Response.Write(PhotoLinkAddressVar);
}
然后在addNewNews_Click
方法中,您可以通过以下方式检索此值:
com.Parameters.AddWithValue("@PhotoLinkAddress", ViewState["photoLinkAddressVar"]);
有关ViewState
的进一步说明,请查看here。