2010年7月27日 星期二

Jquery 抓滑鼠座標值

直接看CODE

$(document).mousemove(function (e) {
sx = e.pageX + document.documentElement.scrollTop;
sy = e.pageY + document.documentElement.scrollLeft;
});

e.pageX ,e.pageY是頁面內的X,Y值
document.documentElement.scrollTop 是下拉捲軸後 Top值
document.documentElement.scrollLeft 是下拉捲軸後 Left值
這樣才能讓在下拉捲軸產生後 確保座標值無誤狀態

Jquery 抓Gridview內的值

因為GridView會轉成一張Table所以用這方法抓值

$("td:nth-child(1)", this)[0].innerHTML


1代表第一欄位
可以改成你所需要欄位

測網路順暢度

打開CMD
輸入 tracert 127.0.0.1
會跑你對這IP連線的狀態
可以看出順不順暢

PS..127.0.0.1是本機IP..

2010年7月22日 星期四

ASP.NET Validator 做單一元件判斷

紀錄一下...
原來Validator跟Button都有Group
哈哈 一直沒注意到
有設定Group就不會亂判斷了!!!
ValidatorGroup

2010年7月21日 星期三

ASP.NET 執行前跳出確認視窗

有很多時候 要在刪除 或是 執行前要先跳個確認按鈕
按下確認才能執行動作

可以這樣做

OnClientClick="return confirm("是否確定要刪除?");"


就會跳出是否確定的執行框了

Linq Insert SQL 指令篇

之前有用到
但打算拿掉了 XDD
先記錄下來


LinqClassesDataContext linqdc = new LinqDataClassesDataContext();
Order ord = new Order
{
No = ComputeNo(),
PersonID = PersonID,
ProjectNo = ProjectNo,
Reason = Reason,
Date = DateTime.Today
};
linqdc.GetTable<Order>().InsertOnSubmit(ord);
linqdc.SubmitChanges();


[Table(Name = "dbo.OrderMain")]
public class Order //新增
{
[Column(IsPrimaryKey = true)]
public string OrderNo { get; set; }
[Column]
public string PersonID { get; set; }
[Column]
public int ProjectNo { get; set; }
[Column]
public string Reason { get; set; }
[Column]
public DateTime Date { get; set; }
}


對了 前面記得加上
using System.Data.Linq;
using System.Data.Linq.Mapping;

如果是自己產生的欄位加入IsDbGenerated=true

C# GridView DataKeyNames 丟值與取值

GridView有提供一個專門在放不用顯示的欄位
也就是DataKeyNames 它可以存多了欄位
這樣像是一些Index值都可以放到這裡面來不用在欄位上顯示
所以就來講怎樣將值丟到裡面吧

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" onrowcommand="GridView1_RowCommand"
DataKeyNames="index">

然而DataKeyNames="index"可以放多個欄位只要用,分隔就行了
也就是DataKeyNames="index1,index2,index3" 這樣

取值勒
用以下方法可以讀出來

GridView1.DataKeys[Convert.ToInt32(e.CommandArgument)].Values[0] //第一筆
GridView1.DataKeys[Convert.ToInt32(e.CommandArgument)].Values[1] //第二筆
GridView1.DataKeys[Convert.ToInt32(e.CommandArgument)].Values[2] //第三筆

2010年7月20日 星期二

Jquery 不同步更新後 droppable 在IE上有錯誤問題

當Jquery 不同步更新某段後 重新更新draggable的值後droppable發生了問題!!!
htmlfile: Unspecified error.
死在這段var box = elem.getBoundingClientRect(),
因為他當不同步更新後,抓座標值會發生錯誤
所以經過了各方查詢資料後...
結論就是要改Jquery內碼
把var box = elem.getBoundingClientRect(),
改成
var box = null; try { box = elem.getBoundingClientRect(); } catch(e) { box = { top : elem.offsetTop, left : elem.offsetLeft } ; }

喔 原本的CODE是多個變數宣告
所以記得 刪了他後 還要還給他var喔

終於可以用了 @_@
參考網站:參考網站

2010年7月19日 星期一

ASP.NET Updatepanel 不同步更新問題

昨天下午遇到一個問題...
一個頁面內有兩個Updatepanel
結果我更新B Updatepanel時候
A也白目的跟著更新
導致我彈跳的視窗被關掉!!!!!

初期就是不知道A 也跟著更新
就亂找亂找...
找到今天早上....
才確認 A也跟著更新 = =+
暈....

解決辦法
請將Updatepanel的設定UpdateMode改成"Conditional"
不要用Always...
不然的話
它只要其中一個Updatepanel更新
其他就會跟著動........

2010年7月15日 星期四

CSS 標籤意義

陸續新增中
有使用到先紀錄

float: <==浮動可以靠左靠右
clear: <==可以解除浮動狀態
margin-top: <==上邊界
margin-right: <==右邊界值
margin-bottom: <==下邊界值
margin-left: <==左邊界值
height: <==高度
width: <==寬度

Linq 使用Split分割ROW

有了條件 我將值通通丟同個DB內的一個欄位內
結果我有設定 ^ 這個標誌分隔
然後現在想要讀出來!!!
嘿嘿
Linq可以直接使用Split功能

var main = from a in LinqDC.Mains.AsEnumerable()
from sp in a.Reason.Split('^')
select new { id = a.No, Reason = sp };


這樣就能將一個ROW的資訊變成多個ROW欄位了

Jquery datepicker Format

將datapicker 格式化

$("#f_btn111").datepicker({ dateFormat: 'yy-mm-dd' });


大致上跟習慣格式化格式差不多
"mm/dd/yy" mm/dd/yy
"yy-mm-dd" yy-mm-dd
"d M, y" d M, y
"d MM, y" d MM, y
"DD, d MM, yy" DD, d MM, yy
"'day' d 'of' MM 'in the year' yy" 'day' d 'of' MM 'in the year' yy

Linq Select 字串 合併

假設A表有ID 跟 NAME
B表有ID 跟 TEL
顯示表格要顯示
ID NAME TEL
但一個人可能有好幾支電話

因為不太想用Gridview的合併欄位方式去合併
但是表格Join後就會有重複的欄位
所以就用LINQ直接將TEL部分合併 A_A
這樣就可以一個欄位 通通搞定

看CODE吧

var test = from a in dctest.NameTable
join b in dctest.TelTable on a.id equals b.id into bbb
select new { id = a.id,name=a.name, tel = string.Join("\n", (from qq in bbb select qq.tel).ToArray()) };


合併了!!!

ASP.NET IE VS FireFox 第一回合

結論就是...用JS在抓textbox的值時候
火狐就莫名的多了好多個\n\n\t的鬼東西
導致我的網頁掛了

所以讓我更加仔細的在三確認值後才擷取 XDD
就醬

2010年7月14日 星期三

XP 開機 NumLock燈開啟

regedit > HKEY_USERS\.DEFAULT\Control Panel\Keyboard\

InitialKeyboardIndicators
0為關閉
2是開啟

XP 更換序號

regedit > HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WPAEvents

OOBETimer 備份 改名 建個新的

執行 %systemroot%\system32\oobe\msoobe.exe /a

選打電話給客服 > 變更產品金鑰 >KEYIN!!!!!

Restart OS!!!

Jquery Tabs 更新後 會回到原本的頁面

如果沒有任何記錄情況下
Jquery的Tabs會回到最初的第1個頁面
但是很多情況是想要讓他保持在原本頁面的
這下子就要用到這招


var tabindex = 0;
function tabsfunction() {
$("#tabs").tabs({
select: function (event, ui) {
tabindex = ui.index;
}
});
$("#tabs").tabs('select', tabindex);
}

在JS最外層宣告個全域變數tabindex然後將每次點選後的index紀錄進去
這樣不管怎樣更新
它還是會乖乖的開啟你剛剛紀錄的tab了

2010年7月13日 星期二

Jquery Ajax UpdatePanel PostBack後 Jquery失效

因為想要更新小部份資料而已
所以就將要更新部份用UpdatePanel包起來
結果一更新!!!燈燈!!!!
Jquery全趴在地上動也不動...

結果發現原來PostBack後要重新讀取一次JS才行

結論就是
將不會動的Jquery寫成Function後
再讀取一次就行了

<script language="javascript" type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(tabsfunction);
</script>


謝謝觀賞

2010年7月11日 星期日

Linq 不同DB Join 表格

A_A
原來LinQ可以直接將不同DB表格Join起來
太優了

不囉唆 看CODE吧

var ErrorOrder =from a in Linq1.Mains.AsEnumerable()
join b in Linq2.Person.AsEnumerable() on a.ID equals b.ID
select new { ID = a.ID, name = b.Name };


Linq1~Linq2是不同DB的DataClasses只要在後面多加上AsEnumerable()
就可以達到合併功能
讚吧 >_^

2010年7月8日 星期四

JS Jquery textbox多個輸入框

遇到一個功能...有5個輸入框專寫意見的
如果輸入第一個 第二個才會開啟可輸入 第三個才會顯示出來
如果輸入第二個 第三個才會開啟可輸入 第四個才會顯示出來
以此類推
所以就寫了個Jquery的功能
讓前端來完成這件事情

因為我有寫MASTER所以會多了將ID傳至前端的方法變數 可以省略不看
直接打上你需要的ID給JQUERY就行了

$(function () {
var TextBoxAR1 = "#" + document.getElementById(GetClientId("TextBoxReason1")).id;
var TextBoxAR2 = "#" + document.getElementById(GetClientId("TextBoxReason2")).id;
var TextBoxAR3 = "#" + document.getElementById(GetClientId("TextBoxReason3")).id;
var TextBoxAR4 = "#" + document.getElementById(GetClientId("TextBoxReason4")).id;
var TextBoxAR5 = "#" + document.getElementById(GetClientId("TextBoxReason5")).id;

//1 TO 2
$(TextBoxAR1).keyup(function () {
if ($(TextBoxAR1).val() != "") {
$(TextBoxAR2).attr("disabled", "");
$("#Reason3").show();
}
else {
$(TextBoxAR2).attr("disabled", "disabled");
$("#Reason3").hide();
}
});
//2 TO 3
$(TextBoxAR2).keyup(function () {
if (($(TextBoxAR2).val() != "")) {
$(TextBoxAR3).attr("disabled", "");
$("#Reason4").show();
}
else {
$(TextBoxAR3).attr("disabled", "disabled");
$("#Reason4").hide();
}
});
//3 TO 4
$(TextBoxAR3).keyup(function () {
if (!($(TextBoxAR3).val() == "")) {
$(TextBoxAR4).attr("disabled", "");
$("#Reason5").show();
}
else {
$(TextBoxAR4).attr("disabled", "disabled");
$("#Reason5").hide();
}
});
//4 TO 5
$(TextBoxAR4).keyup(function () {
if (!($(TextBoxAR4).val() == "")) {
$(TextBoxAR5).attr("disabled", "");
}
else {
$(TextBoxAR5).attr("disabled", "disabled");
}
});

2010年7月1日 星期四

SQL SSMS2008 無法更新TABLE設計問題

有阿飄!!有阿飄!!! 別纏著我!!!

結果是死白目的SSMS2008有阿飄...
他有防止一些特殊的TABLE設計問題...
所以導致某些設計不能變更 (下指令可以)

解決方案
請至 SSMS2008的TOOLS > OPTIONS > DESIGNERS > 的
Prevent saving changes that require table re-creation
取消打勾就行了

阿飄終於走了 ㄟ(一 o 一 ㄟ)~~

SQL T-SQL 查詢連線人員

T-SQL 可以查詢連線人員有誰

查詢語法 sp_who