Form1 NewPage有一个datagridview和两个按钮AddEntry和EditEntry.Form2 AddEntry有6个文本框和ok按钮。 当我单击AddEntry按钮时,form2将打开。当我在文本框中输入一些数据然后单击确定时,它必须添加到form1的datagridview。
我在AddEntry Button后面编写了这段代码。我现在能够从文本框中获取数据。
public void AddEntryBtn_Click(object sender, EventArgs e)
{
string x = label4.Text;
using (var obj_Addentry = new AddEntry(x))
{
obj_Addentry.ShowDialog();
}
this.Close();
}
当我单击EditEntry按钮时,行选择的数据将出现在要编辑的文本框中。但问题是,当我单击form2中的ok按钮时,没有任何操作,因为我没有将数据添加到datagridview后面的代码用于将数据添加到datagridview的form2.Code的ok按钮位于form1的AddEntry按钮后面。
我应该写什么来将数据添加到form2的ok按钮后面的datagrid视图而不是将其写在form1的AddEntry按钮后面?
答案 0 :(得分:0)
需要通过id发送所有文本框值,然后在第2页中使用查询字符串获取值全部使用网格视图中的值。
示例方式: 第1页:
int ID = Convert.ToInt32(txtID.Text);
string url = "Page2.aspx?id=" + ID;
string fullURL = "window.open('" + url + "', '_blank');";
ScriptManager.RegisterStartupScript(this, typeof(string), "OPEN_WINDOW", fullURL, true);
第2页:
if (!IsPostBack)
{
ID = Convert.ToInt32(Request.QueryString["id"]);
lblid.Text = ID.ToString();
}
答案 1 :(得分:0)
答案 2 :(得分:0)
1.在AddEntry表单中写下委托和事件。 2.单击form2 raise事件中的ok按钮 3.在form1 Newpage
中分配事件处理程序e.g。
public delegate void EditCompletedEvent(List<string> strEditedValues);
public event EditCompletedEvent EditCompleted;
public void OKBtn_Click(object sender, EventArgs e)
{
if (this.EditCompleted!= null)
{
EditCompleted(listofEditedvalues);
}
}
//And in form1 assign event handler
public void AddEntryBtn_Click(object sender, EventArgs e)
{
string x = label4.Text;
using (var obj_Addentry = new AddEntry(x))
{
obj_Addentry.EditCompleted +=
new Form2.EditCompletedEvent(obj_Addentry_EditCompleted)
obj_Addentry.ShowDialog();
}
this.Close();
}
obj_Addentry_EditCompleted(List<string> Editedvalues)
{
//Write down logic for assignment
}