我有一个gridview,我绑定了我系统的Demands 表(表名如DemandFiche)。同时,有一个 fiche 记录详细信息表,我保存我的 fiche 记录详细信息(表名称,如 DemandFicheDetails)(另外我在 DemandFicheDetails 表中将我的 DemandFiche 表“ID”保留为“DemandFicheID”。所以之间存在联系这两张表)
我想双击选定的行并将 ID 值传递到另一个页面(DemandsDetailForm)以查看选定记录的详细信息。
顺便说一句,我使用 asp.net 4.5 和实体框架。
我怎样才能做到这一点?谢谢。
这是aspx代码(DemandsForm.aspx):
<div>
<asp:GridView runat="server" OnSelectedIndexChanged="DemandsGridView_SelectedIndexChanged" OnRowDataBound="DemandsGridView_RowDataBound" Width="1300px" AllowPaging="True" AllowSorting="True" ID="GridView1" DataSourceID="DemandsEntityDataSource" AutoGenerateColumns="False">
<AlternatingRowStyle BackColor="#CCCCCC" />
<SelectedRowStyle BackColor="Yellow" />
<Columns>
<asp:BoundField DataField="ID" Visible="False" />
<asp:BoundField DataField="DATE_" HeaderText="Date" Visible="True" DataFormatString="{0:dd/MM/yyyy}" />
<asp:BoundField DataField="FICHENO" HeaderText="Fiche No" Visible="True" />
<asp:BoundField DataField="DOCODE" HeaderText="Docode" Visible="True" />
<asp:BoundField DataField="STATUS" HeaderText="Status" Visible="True" />
<asp:BoundField DataField="BRANCH" HeaderText="Branch" Visible="True" />
<asp:BoundField DataField="DEPARTMENT" HeaderText="Department" Visible="True" />
<asp:BoundField DataField="SOURCEINDEX" HeaderText="Sourceindex" Visible="True" />
<asp:BoundField DataField="FACTORY" HeaderText="Factory" Visible="True" />
</Columns>
<EditRowStyle ForeColor="#CC3300" />
</asp:GridView>
<asp:EntityDataSource ID="DemandsEntityDataSource" runat="server" ConnectionString="name=PmsEntities" DefaultContainerName="PmsEntities" EntitySetName="PMS_DEMANDSVIEW" EntityTypeFilter="PMS_DEMANDSVIEW">
</asp:EntityDataSource>
</div>
这是后面的代码:
public partial class DemandsForm : System.Web.UI.Page
{
public DemandsDetailForm DemandsDetailForm;
private PmsEntities dbContext;
protected void Page_Load(object sender, EventArgs e)
{
dbContext = new PmsEntities();
}
protected void DemandsGridView_SelectedIndexChanged(object sender, EventArgs e)
{
}
protected void DemandsGridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("OnMouseOver", "this.style.cursor = 'hand';");
var selectButton = new LinkButton()
{
CommandName = "Select",
Text = e.Row.Cells[0].Text
};
selectButton.Font.Underline = false;
selectButton.ForeColor = Color.Black;
e.Row.Cells[0].Controls.Add(selectButton);
//e.Row.Attributes["OnClick"] = Page.ClientScript.GetPostBackClientHyperlink(selectButton, "");
e.Row.Attributes["onclick"] = ClientScript.GetPostBackClientHyperlink(DemandsGridView, "Select$" + e.Row.RowIndex);
e.Row.Attributes.Add("ondblclick", "__doPostBack('DemandsGridView','Select$" + e.Row.Cells[0] + "');");
}
}
}