【发布时间】:2012-03-14 05:37:55
【问题描述】:
现在我对如何使用以下结构和标准创建 gridview 感到非常困惑:
注意:gridview 将从不同的表中获取数据
列: 1. IDcol 唯一值,它将来自tableA(作为文本) 2.日期也将来自tableA(作为文本) 3. link1 它将是指向另一个页面的超链接,并且 url 的参数将是 'IDcol' 列值,但如果该记录存在于 tableB 中且具有相同的 'IDcol',则显示的文本将发生变化,显示的将是“查看/编辑" 如果不存在,它将是"添加新"
数据库结构:
表A:
IDcol as (primary key),
Date
表B:
ID,
IDcol as (foreign key from tableA).
other fields
所以我需要使用循环填充 gridview,因为我必须检查每一行并使用一些条件
对不起,如果我的描述方式不清楚,但我真的很困惑
我的删除部分代码:
<asp:LinkButton ID="DeleteLink" runat="server" Text="Delete" CommandName="Delete"></asp:LinkButton>
</ItemTemplate>
<ItemStyle Width="100px" />
</asp:TemplateField>
DeleteCommand="DELETE VisitsInfo WHERE ID=@VID">
<DeleteParameters>
<asp:Parameter Name="VID" Type="Int64" />
</DeleteParameters>
在后面的代码中:
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int VID = int.Parse(GridView1.DataKeys[0].Value.ToString());
SqlDataSourceVisits.DeleteParameters[0].DefaultValue = VID.ToString();
}
当我单击删除链接删除行时,它可以工作,但是当刷新页面时,它删除另一行而不单击删除链接,为什么会发生这种情况??
【问题讨论】:
-
只是一个建议,当您需要循环检查某些条件时,为什么不将所有列放入一个表中
-
因为我只需要为用户显示特定的列,这将取决于来自许多表的数据库中的数据,而不仅仅是一个,这就是问题
-
我的意思是当你根据你的条件循环时,将所需的值添加到一个主表中(你可以在尽可能多的表中查找),然后将数据推送到所需的单元格中(希望您将要显示的列固定)
-
嗯我想我会尝试你的建议并告诉:) 谢谢
-
@speciallife - 你有没有尝试过?