62,267
社区成员
发帖
与我相关
我的任务
分享
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dt = new DataTable("Table_Order");
dt.Columns.Add("GUID", System.Type.GetType("System.Guid"));
dt.Columns.Add("名字", System.Type.GetType("System.String"));
DataRow dr = dt.NewRow();
dr["GUID"] = guid1;
dr["名字"] = "小明";
DataRow dr = dt.NewRow();
dr["GUID"] = guid2;
dr["名字"] = "小红";
DataView dv = new DataView(dt);
dynamicGenerateColumns(GridView1, dt);//动态生成列
GridView1.DataSource = dv;
GridView1.DataKeyNames = new string[] { "GUID"};//设置键
gv_OrderInfo.DataBind();
}
}
// 动态生成GridView的Columns
public static GridView dynamicGenerateColumns(GridView gv, DataTable dt)
{
// 把GridView的自动产生列设置为false,否则会出现重复列
gv.AutoGenerateColumns = false;
// 清空所有的Columns
gv.Columns.Clear();
// 遍历DataTable 的每个Columns,然后添加到GridView中去
foreach (DataColumn item in dt.Columns)
{
BoundField col = new BoundField();
col.HeaderText = item.ColumnName;
col.DataField = item.ColumnName;
col.Visible = true;
gv.Columns.Add(col);
}
return gv;
}
protected void gv_OrderInfo_SelectedIndexChanged(object sender, EventArgs e)//点击界面中的超链接之后,可以取到相应的键值(GUID)
{
Label1.Text = GridView1.SelectedDataKey["GUID"].ToString();
}
<asp:GridView ID="GridView1" runat="server"
OnRowDataBound="GridView1_RowDataBound" AutoGenerateSelectButton="True"
OnSelectedIndexChanged="GridView1_SelectedIndexChanged">
</asp:GridView>
<asp:GridView ID="gv_OrderInfo" runat="server"
OnSelectedIndexChanged="gv_OrderInfo_SelectedIndexChanged"
AutoGenerateColumns="False" OnRowEditing="gv_OrderInfo_RowEditing"
OnRowDeleting="gv_OrderInfo_RowDeleting">
<Columns>
<asp:ButtonField CommandName="Select" Text="查看" >
<ControlStyle ForeColor="Blue" />
</asp:ButtonField>
<asp:BoundField DataField="医院" HeaderText="医院" ItemStyle-Width="400px"
ReadOnly="True">
<ItemStyle Width="150px"></ItemStyle>
</asp:BoundField>
<asp:ButtonField CommandName="Edit" Text="修改" >
<ControlStyle ForeColor="Blue" />
</asp:ButtonField>
<asp:ButtonField CommandName="Delete" Text="删除" >
<ControlStyle ForeColor="Blue" />
</asp:ButtonField>
</Columns>
</asp:GridView>
int id=Convert.ToInt32(GridView1.DataKeys[e.NewEditIndex].Value);int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value);
gv_OrderInfo.DataKeyNames = new string[] { "GUID", "ComeGUID", "PatientGUID" };//设置键
protected void gv_OrderInfo_SelectedIndexChanged(object sender, EventArgs e)
{
Label1.Text = "GUID:" + gv_OrderInfo.SelectedDataKey["GUID"].ToString();
Label2.Text = "ComeGUID:" + gv_OrderInfo.SelectedDataKey["ComeGUID"].ToString();
Label3.Text = "PatientGUID:" + gv_OrderInfo.SelectedDataKey["PatientGUID"].ToString();
}
<asp:TemplateField HeaderText="name" >
<ItemTemplate>
<asp:LinkButton ID="nmae" runat="server" Text='<%# Eval("name")%>' CommandName="Edit" ></asp:LinkButton><br />
</ItemTemplate>
</asp:TemplateField> protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
Response.Redirect("index.aspx");
}