使用C#,在.net环境下开发一个数据库,数据源绑定后,可以在同一页实现阅读功能。例如:绑定后,我点击任 10
一本书名,都可以转到在同一页面显示输的内容。这样的数据库怎么建立。我只会简单的数据库建立(只会淘宝买东西那样)。而如何把书的内容绑定进去,这个不会。...
一本书名,都可以转到在同一页面显示输的内容。这样的数据库怎么建立。我只会简单的数据库建立(只会淘宝买东西那样)。而如何把书的内容绑定进去,这个不会。
展开
3个回答
展开全部
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGrid();
}
}
private void BindGrid()
{
//虚拟数据源
DataTable dataTable = new DataTable();
dataTable.Columns.Add("Id", typeof(int));
dataTable.Columns.Add("Name");
dataTable.Columns.Add("Details");
for (int i = 1; i < 6; i++)
{
dataTable.Rows.Add(i, "书本" + i, "我是书" + i + "的详情");
}
GridView1.DataSource = dataTable;
GridView1.DataBind();
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName.Equals("details"))
{
var row = ((Control)e.CommandSource).Parent.Parent as GridViewRow;
if (row != null)
{
var dataKey = GridView1.DataKeys[row.RowIndex];
if (dataKey != null)
{
ltrDetails.Text = dataKey.Value.ToString();
//这里获取的是书本主键
//实际项目应该根据主键获取对应数据,然后绑定上去,也可以事先绑定
}
//(demo是事先绑定,并隐藏)
var hiddenField = row.FindControl("hfDetails") as HiddenField;
if (hiddenField != null)
{
var details = hiddenField.Value; //取隐藏控件内容,即书本内容
ltrDetails.Text = details;
}
}
}
}
</script>
<html xmlns="
<head runat="server">
<title>显示书本内容</title>
</head>
<body>
<form id="bookForm" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="Id"
OnRowCommand="GridView1_RowCommand">
<Columns>
<asp:TemplateField HeaderText="书Id">
<ItemTemplate>
<%#Eval("Id") %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="书名">
<ItemTemplate>
<asp:HiddenField runat="server" ID="hfDetails" Value='<%# Eval("Details") %>' />
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="details" Text='<%# Eval("Name") %>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
<div>
<asp:Literal runat="server" ID="ltrDetails"></asp:Literal>
</div>
</form>
</body>
</html>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这个应该和数据库没太大关系,应该是和前台效果有关系,如果你是WEB情况下那么需要使用到AJAX异步加载。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询