它可能無法訪問我其中有一個模板字段它看起來是這樣的一個評論框..'Image1'未被聲明。由於它的權限級別的錯誤
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" DataSourceID="CommentsDataSource" Height="167px" Width="325px">
<Columns>
<asp:TemplateField HeaderText="Comments">
<ItemTemplate>
<div style="background-color:Silver">
<div class="avatar-frame">
<asp:Image ID="ProfilePic" runat="server"/>
</div>
<h1><%# Eval("TagLine")%></h1>
<h2><%# Eval("IfNonMemberUserName")%></h2>
<p><%# Eval("CommentBody")%></p>
</div>
</ItemTemplate>
<AlternatingItemTemplate>
<div style="background-color:White">
<div class="avatar-frame">
</div>
<h1><%# Eval("TagLine")%></h1>
<h2><%# Eval("IfNonMemberUserName")%></h2>
<p><%# Eval("CommentBody")%></p>
</div>
</AlternatingItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="CommentsDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:BookMeetConnString %>" ProviderName="<%$ ConnectionStrings:BookMeetConnString.ProviderName %>" SelectCommand="SELECT [IfNonMemberUserName], [UserAvatar], [TagLine], [CommentBody] FROM [comments] WHERE ([BookID] = ?)">
<SelectParameters>
<asp:QueryStringParameter Name="?" QueryStringField="ID" />
</SelectParameters>
</asp:SqlDataSource>
一些背景資料: 我有一個MS Access數據庫一個名爲「userprofiles」的表,其中有一個名爲AvatarURL的字段。類似地,還有一個名爲'comments'的表,裏面有一個名爲'UserAvatar'的查找字段,它指的是'userprofiles'表的'AvatarURL'字段。
我收到''ProfilePic'沒有聲明。它可能不可訪問,因爲它的權限級別「在我的代碼後面出錯。智能感知告訴我,有「ProfilePic」未聲明的ID(該DisplayData子例程中的圖像
有問題的代碼位是:
Protected Sub DisplayData()
Dim conn As OleDbConnection = New OleDbConnection(ConfigurationManager.ConnectionStrings("BookMeetConnString").ConnectionString)
Dim sql = "SELECT * FROM userprofiles WHERE [email protected]"
Dim cmd = New OleDbCommand(sql, conn)
cmd.Parameters.AddWithValue("@f1", User.Identity.Name)
conn.Open()
Dim profileDr = cmd.ExecuteReader()
profileDr.Read()
If Not IsDBNull(profileDr("AvatarURL")) Then ProfilePic.ImageUrl = profileDr.Item("AvatarURL")
conn.Close()
End Sub
在運行時,detail.aspx工作正常,但在評論欄中的頭像不顯示在所有我在做什麼錯
編輯:?
我已成功地走到這一步:
Protected Sub GridView2_RowDataBound(sender As Object, e As GridViewRowEventArgs) Dim conn As OleDbConnection = New OleDbConnection(ConfigurationManager.ConnectionStrings("BookMeetConnString").ConnectionString) Dim sql = "SELECT * FROM userprofiles WHERE [email protected]" Dim cmd = New OleDbCommand(sql, conn) cmd.Parameters.AddWithValue("@f1", User.Identity.Name) conn.Open() Dim profileDr = cmd.ExecuteReader() profileDr.Read() Dim ProfilePic If e.Row.RowType = DataControlRowType.DataRow Then ProfilePic = e.Row.FindControl("ProfilePic") If Not IsDBNull(profileDr("AvatarURL")) Then ProfilePic.ImageUrl = profileDr.Item("AvatarURL") End If conn.Close() End Sub
然而,圖像仍然沒有出現在運行時。這有什麼問題?我應該使用datareader嗎?
請大肆削減代碼示例問題的最基本方面的變化。我看不到樹木。 – Oded
好吧,我已將代碼切下來。你怎麼看? – adaam