2张表GridView1, DetailsView1。GridView1表中添加了选择按钮点中选择按钮在 DetailsView1中显示选中的详细信息。在GridView1中编写了如下语句
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
this.DetailsView1.PageIndex = this.GridView1.SelectedRow.DataItemIndex;
}
这时如我选中GridView1表中编号001的数据DetailsView1中择显示了001的详细信息。如果我把编号排大到小排序这时GridView1表中第一个编号100,选中100这时DetailsView1表中显示的详细信息还是001的?选中第二个编号99 DetailsView1表中显示的详细信息是002的详细信息。这个为什么该怎么修改。
还有个问题Calendar控件选择日期是总背其他控件遮挡无法选择日期如何让Calendar控件总在最上层。求高手解答
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
this.DetailsView1.PageIndex = this.GridView1.SelectedRow.DataItemIndex;
}
这时如我选中GridView1表中编号001的数据DetailsView1中择显示了001的详细信息。如果我把编号排大到小排序这时GridView1表中第一个编号100,选中100这时DetailsView1表中显示的详细信息还是001的?选中第二个编号99 DetailsView1表中显示的详细信息是002的详细信息。这个为什么该怎么修改。
还有个问题Calendar控件选择日期是总背其他控件遮挡无法选择日期如何让Calendar控件总在最上层。求高手解答
你为GridView1设置DataKeyNames 然后根据行索引去取主键值
比如:
string id = GridView1.DataKeys[e.RowIndex].Value.ToString();
<asp:TextBox ID="TextBox_FinishDate"
runat="server" CssClass="textbox"></asp:TextBox>
<asp:ImageButton ID="ImageButton_FinishDate" runat="Server"
AlternateText="Click to show calendar"
ImageUrl="~/image/Calendar_scheduleHS.png" />
<asp:CalendarExtender ID="CalendarExtender2" runat="server" Format="yyyy-MM-dd"
PopupButtonID="ImageButton_FinishDate" TargetControlID="TextBox_FinishDate">
</asp:CalendarExtender>
仅供参考
protected void MasterGridView_RowDataBound( object sender, GridViewRowEventArgs e )
{
if (e.Row.RowType == DataControlRowType.DataRow)
{ GridView oGridView = (GridView)e.Row.FindControl("DetailGridView");
if (oGridView != null)
{
OleDbCommand cmd = new OleDbCommand("select top 10 * from Document Where pid = " + MasterGridView.DataKeys[e.Row.RowIndex].Value, cn1);
OleDbDataReader dr1 = cmd.ExecuteReader();
oGridView.DataSource = dr1;
oGridView.DataBind();
dr1.Close();
cmd.Dispose();
}
}
}