台灣最大程式設計社群網站
線上人數
1191
 
會員總數:242629
討論主題:187612
歡迎您免費加入會員
討論區列表 >> ASP.NET >> 請問要如何巨集替換
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請問要如何巨集替換
價值 : 50 QP  點閱數:323 回應數:12

樓主

danny
門外漢
0 8
199 17
發送站內信

請問各位,可以動態的顯示欄位內容嗎?
因為要顯示的欄位不是固定的,是要由變數指定的,我應該怎麼做?

例如:


搜尋相關Tags的文章: [ 巨集 ] ,
本篇文章發表於2018-01-15 19:49
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
作者回應

danny
檢舉此回應

環境: Win7 + VS2017
本篇文章回覆於2018-01-15 19:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

MIS2000 Lab
檢舉此回應
這個範例不知道有沒有幫上忙?

https://dotblogs.com.tw/mis2000lab/2010/05/11/entlib_50_daab_sample
本篇文章回覆於2018-01-15 23:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
巨集?

這個詞,會讓人誤會是Excel巨集之類的程式
您指的是否是資料集?

可以動態的顯示欄位內容嗎?
因為要顯示的欄位不是固定的,是要由變數指定的,我應該怎麼做?


您指的是,SQL查詢所產出的資料,他的欄位不固定,要怎麼處理?是嗎?
看您的程式,目前用的是DataReader
您可以改用DataTable,這樣,就可以從ColumnName讀取到欄位的名稱

再利用Row.Item([欄位名稱]),在每一筆Row中取得每個欄位的內容
https://msdn.microsoft.com/zh-tw/library/system.data.datatable.columns(v=vs.110).aspx

^_^
本篇文章回覆於2018-01-16 09:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

danny
檢舉此回應
謝謝 MIS2000 Lab : 很抱歉,我大略看了一下,還沒找到我要的部份

謝謝 topcat : 巨集替換,我指的是類似 JavaScript 的 eval()

資料來源的欄位是固定的,但是每個客戶想要顯示的欄位內容卻不一樣,因此我在程式的系統設定上,增加一組變數,讓每個客戶都可以設定要輸出的內容

本篇文章回覆於2018-01-16 11:34
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
#3的連結看了嗎?
DataTable的Column物件的ColumnName屬性
可以列出目前查詢結果的欄位名稱

DataRow可以依據Column的名稱,取出值
DataRow.Item("Column的名稱")

以上這兩個,搭配起來,應該可以解決您想做的問題
^_^
本篇文章回覆於2018-01-16 13:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

danny
檢舉此回應
謝謝 topcat , 上面說的取出欄位名稱,及欄位內容的方法,我了解

我要的是巨集:

例如Javascript 語法: eval( "3+7+5" ) ==> 結果為 15

vb 是否有類似的功能 ?



本篇文章回覆於2018-01-16 14:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

MIS2000 Lab
檢舉此回應
Q : 若 xvar 的內容為 IDR("name1")+IDR("name2")
Response.Write( ??? ) ' 要如何顯示出 xvar 變數的欄位內容


A : Response.Write(IDR("name1")+IDR("name2"))
或 Response.Write(xvar)
本篇文章回覆於2018-01-16 14:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
我舉個例子

畫面中我放一個TextBox,來輸入SQL語法
然後按鈕按下後,會把該語法的欄位名稱列出

aspx:



aspx.vb


^_^

本篇文章回覆於2018-01-16 15:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

danny
檢舉此回應
本篇文章回覆於2018-01-17 10:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
最有價值解答

小羊窒息
捐贈 VP 給 小羊窒息 檢舉此回應
ASP可以(有內建eval函數, 與javascript的eval完全相同),
===============

ASP.NET.........
(雖然有著看似相同的 DataBinder.Eval 但主要是在頁面中使用,
完全不同於javascript的eval...)

不過呢, 在底下的討論中, 有其他的解法...
關鍵跟eval相同, 就是 【把文字 認定為程式碼, 並且執行他】
https://forums.asp.net/t/1761684.aspx?Execute+the+C+code+written+in+String+

你有興趣的話可以去研究他們的做法
本篇文章回覆於2018-01-17 11:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
感覺∼您把解法越想越偏∼

我們回歸最原始的需求
確認您的需求
請問各位,可以動態的顯示欄位內容嗎?

這個是您想要的需求嗎?

如果是,根本不必用到您#9提到的方式
用ADO.NET的DataTable
假設欄位是UserID
那麼取值,就是Row.Item["UserID"]
假設欄位是UserName
那麼取值,就是Row.Item["UserName"]


因此,只要取得這次的查詢,他的欄位名稱,變成字串
string FieldName;
那麼

FieldName="UserID";
就可以
Row.Item[FieldName]取得UserID的值

FieldName="UserName";
就可以
Row.Item[FieldName]取得UserName的值

^_^
本篇文章回覆於2018-01-17 11:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
作者回應

danny
檢舉此回應
謝謝小羊窒息,10樓提到的: 把文字 認定為程式碼, 並且執行他 ...............這是我要的.我先慢慢研究

謝謝topcat,MIS2000 Lab,抱歉了,因為我的用詞不清楚,而誤導了
本篇文章回覆於2018-01-17 11:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.