c# - 如何在gridview中显示不同的对象?

标签 c# asp.net oracle gridview

我的数据库中有一张表,存放了图片、文档、dll绳索等。我如何为用户实现这一切的映射? 我将这些数据绑定(bind)到一个数据表,并希望在每个单元格中都有超链接,当单击该超链接时,会调用/打开数据库中的相应项目。

OracleCommand oracleCom = new OracleCommand();
oracleCom.Connection = oraConnect;
oracleCom.CommandText = "Select * From " + Session["tableNameIns"];
OracleDataAdapter adapter = new Oraenter code herecleDataAdapter();
DataTable tableD = new DataTable();
tableD.Locale = System.Globalization.CultureInfo.InvariantCulture;
adapter.SelectCommand = oracleCom;
adapter.Fill(tableD);
changeTableAtributs(tableD);
tableResults.DataSource = tableD.AsDataView();
tableResults.DataBind();

在 DB 下一个属性:i_id(number), i_objecttype_id(number), s_code(nvarchar), s_name(nvarchar), m_content(blob), m_description(nvarchar) dbview

在客户端上,我看到下一个:i_id(number)、i_objecttype_id(number)、s_code(nvarchar)、s_name(nvarchar)、m_description(nvarchar)。 没有属性 m_content。 clienview

最佳答案

您的问题似乎“不完整”。那么,如果 blob 是一张图片,您希望显示图片吗?如果 blob 是一个 dll,会发生什么?

在您的数据库中,M_CONTENT 字段是一个 blob,因此如果您将其数据绑定(bind)到 GridView,则 GridView 无法知道该字段中的内容。

如果您希望显示的图像显示 blob 中文件的类型,那么您需要知道该类型。要么将类型存储在数据库中(最佳),要么在运行时解析 blob 并找出文件类型。

在我看来,您已经有了类型 (I_OBJECTTYPE_ID)。如果是这种情况,那么您可以在 asp:GridView/Columns 下定义一个列

<asp:TemplateField HeaderText="File type">
    <ItemTemplate>
        <asp:Image runat="server" ID="mediaImage"
            ImageUrl='<%# GetImageUrl(Eval("type") as string) %>' />
    </ItemTemplate>
</asp:TemplateField>

在您的例子中,类型列称为 I_OBJECTTYPE_ID。 GetImageUrl 是代码隐藏中的一个函数:

switch (type)
{
    case "video":
        return "~//Images//video.png";
    case "audio":
        return "~//Images//audio.png";
}
return ""; // Something is wrong

使用这种技术,您可以在 ItemTemplate 标记下创建超链接和其他内容。

关于c# - 如何在gridview中显示不同的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13244255/

相关文章:

c# - Server.MapPath - 给定的物理路径,预期的虚拟路径

c# - 在C#中使用 'dynamic'实现访客模式

c# - ASP.net:在 TextMode = "Number"中通过键盘键入时,TextBox 允许超出范围的数字

sql - 想要在oracle sql的MERGE语句中添加一些条件以进行插入/更新

c# - NHibernate:你总是需要提交吗?它在读取时实际上做了什么?

c# - Permutation Finder算法分析(伪代码)

c# - 如何修复 Viewstate 中表的序列化?

c# - CSV 导出 Response.End 抛出异常

mysql - 当数据库表中存在主键和唯一键时会出现什么异常?

java - 在sqlj中使用序列?