システムの Demands テーブル (DemandFiche のようなテーブル名) をバインドするグリッドビューがあります。同時に、フィッシュ レコードの詳細 (DemandFicheDetails のようなテーブル名) を保持するフィッシュ レコード詳細テーブルがあります (また、DemandFicheDetails テーブルの DemandFiche テーブルの「ID」を「DemandFicheID」として保持します。これら 2 つのテーブル)
選択した行をダブルクリックし、選択したレコードの詳細を表示するための 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] + "');");
}
}
}