<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    如鵬網 大學生計算機學習社區

    CowNew開源團隊

    http://www.cownew.com 郵件請聯系 about521 at 163.com

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      363 隨筆 :: 2 文章 :: 808 評論 :: 0 Trackbacks

    #

    RewriteEngine on

    RewriteCond %{HTTP_REFERER} !^$ [NC]
    RewriteCond %{HTTP_REFERER} !^http://rupeng.com/.*$ [NC]
    RewriteCond %{HTTP_REFERER} !^http://rupeng.com$ [NC]
    RewriteCond %{HTTP_REFERER} !^http://www.rupeng.com/.*$ [NC]
    RewriteCond %{HTTP_REFERER} !^http://www.rupeng.com$ [NC]
    RewriteCond %{HTTP_REFERER} !^http://www.tinyosstudy.com/.*$ [NC]
    RewriteCond %{HTTP_REFERER} !^http://www.tinyosstudy.com$ [NC]
    RewriteRule .*.(jpg|jpeg|gif|png|bmp|rar|zip|exe|pdf|attach|chm)$      http://www.rupeng.com


    一定要注意保存為Unix格式。有的版本的IE“另存為”發送的referer為空,所以加上第一行“RewriteCond %{HTTP_REFERER} !^$ [NC]”
    posted @ 2009-05-04 13:37 CowNew開源團隊 閱讀(363) | 評論 (0)編輯 收藏

    付費解決疑難問題:

    楊中科是國內知名的技術圖書作者和IT培訓講師,經驗豐富,詳見百度百科:http://baike.baidu.com/view/1607669.htm 

    楊中科在各種主流語言和技術平臺上都有過豐富的經驗,善于處理各種疑難問題,把您的技術難題提交給我,包您滿意。
    支付方式: http://item.taobao.com/auction/item_detail.jhtml?item_id=040979d74ff665498567ed0848fc5bf7
    支付后和我連接解決問題,對于特別疑難的問題不排除加價的可能。

    開源收費服務:

    負責解決CowNew開源相關產品的問題,包括使用咨詢、產品定制、二次開發、培訓等。

    服務費以500元為單位,具體費用需要協商。


    支付方式:http://item.taobao.com/auction/item_detail.jhtml?x_id=0db2&item_id=237dfa9931ab86dcdd6a2a7a9179c05d
    posted @ 2009-03-14 00:07 CowNew開源團隊 閱讀(276) | 評論 (0)編輯 收藏

         摘要: 第一部分 AppWizard及其工作原理 AppWizard即應用程序向導,它是Visual Studio開發環境中強大的編程工具之一,用它可以創建各種不同類型的程序。比如Win32應用、ATL、MFC應用等等。在Windows的術語中,向導(wizard)一詞指得是一個應用程...  閱讀全文
    posted @ 2009-03-08 00:04 CowNew開源團隊 閱讀(964) | 評論 (0)編輯 收藏

    當自定義的應用程序向導生成一個項目時,則它只是不能替換自動創建的.dsp 項目設置文件。 .dsp 文件中的項目設置由假定所有生成的項目為 MFC 項目的內部規則設置。 但是,Visual C++ 5.0 的新對象模型允許修改工具設置,以便從生成的項目中刪除所有依賴 MFC 的自定義 AppWizards。

    Visual C++5.0 CCustomAppWiz 類現在具有名為 CustomizeProject 在虛擬重寫。 CustomizeProject 提供與 IBuildProject 接口自定義向導。 IBuildProject 配置方法提供了一個的 IConfiguration 界面,用于在項目中每個生成配置。 IConfiguration 可以添加和刪除如編譯器提供給工具的設置。 在使用這些方法自定義向導可以刪除在 MFC 上添加依存關系的設置。

    示例代碼

    以下是示例 CustomizeProject 重寫的演示 MFC 依賴項的刪除:
       #import "c:\Program Files\DevStudio\SharedIDE\bin\ide\devbld.pkg"
    void CNoMfcCustWizAppWiz::CustomizeProject(IBuildProject* pProject)
    {
    using namespace DSProjectSystem;
    long lNumConfigs;
    IConfigurationsPtr pConfigs;
    IBuildProjectPtr pProj;
    // Needed to convert IBuildProject to the DSProjectSystem namespace
    pProj.Attach((DSProjectSystem::IBuildProject*)pProject, true);
    pProj->get_Configurations(&pConfigs);
    pConfigs->get_Count(&lNumConfigs);
    //Get each individual configuration
    for (long j = 1 ; j < lNumConfigs+1 ; j++)
    {
    _bstr_t varTool;
    _bstr_t varSwitch;
    IConfigurationPtr pConfig;
    _variant_t varj = j;
    pConfig = pConfigs->Item(varj);
    // Remove Preprocessor def for MFC DLL specifier, _AFXDLL
    varTool   = "cl.exe";
    varSwitch = "/D \"_AFXDLL\"";
    pConfig->RemoveToolSettings(varTool, varSwitch, varj);
    varTool   = "rc.exe";
    varSwitch = "/d \"_AFXDLL\"";
    pConfig->RemoveToolSettings(varTool, varSwitch, varj);
    // OPTIONAL
    // Add Libs that MFC headers would have pulled in automatically
    // Feel free to customize this listing to your tastes
    varTool = "link.exe";
    varSwitch = "kernel32.lib user32.lib gdi32.lib winspool.lib "
    "comdlg32.lib advapi32.lib shell32.lib ole32.lib "
    "oleaut32.lib uuid.lib odbc32.lib odbccp32.lib";
    pConfig->AddToolSettings(varTool, varSwitch, varj);
    }
    }
    
    本代碼示例使用 Visual C++ 5.0 的新 COM 編譯器支持功能的說明。 # import 語句導入,并創建 DEVBLD.PKG 類型庫的所有類型的定義。 這將允許使用窗體 IInterfacePtr 的 COM 智能指針,以及新的 _ bstr _ t 和 _ variant _ t 類型代碼。 這些新類型的所有自動清理使用的內存,并在超出范圍時釋放保持的接口指針。

    此外請注意標準的自定義應用程序向導將使用預編譯的頭文件 StdAfx.h。 應當將放 # import # 結尾處的語句 StdAfx.h 中包含列表。

    注意: DevBld.pkg 路徑將不同,如果您使用 Visual C++ 版本 6.0。 假設 Visual C++ 版本 6.0 已安裝到 C: 驅動器上的默認目錄,# import 語句應閱讀,如下所示:
       #import "C:\Program Files\Microsoft Visual Studio\Common\MsDev98\Bin\IDE\DevBld.Pkg"
    
    注意: 上面 </a0>-# import 行必須在代碼中相同的行。

    請參閱有關 Visual C++ 文檔。

    警告

    • 請注意沒有編程的方法可用于刪除內部的項目將該控件設置"Microsoft 基礎類"設置在常規的項目設置由包含上述代碼的自定義向導生成的方式項目仍將顯示"使用 MFC 共享 DLL 中"。 您可以更改此設置,唯一方法是不支持修改.dsp 項目設置文件。 但是,此設置僅用于某些 DevStudio MFC 用戶界面元素如類向導和一些基于 MFC 的組件庫組件。 它應該有一個非 MFC 項目沒有影響。
    • 即使后修改項目設置使用 AddToolSettings 和與上面的 RemoveToolSettings,默認項目設置將仍然保持相同 Visual C++ 版本 5.0 中。 如果項目生成此自定義應用程序向導的用戶打開項目設置,并單擊重置,已還原的項目設置將包含已刪除的 MFC 引用。 再次,防止出現這種唯一的方法是使不支持的更改生成的.dsp 項目設置文件手動自定義應用程序向導已創建項目后。

      Visual C++ 版本 6.0 提供新的自動化方法更改默認項目設置的。 配置對象支持 MakeCurrentSettingsDefault 方法。 此方法更改成為當前的設置配置的默認項目設置。
    • 當您使用 RemoveToolSettings 時,刪除一次的只有一個工具設置。 在上面示例中進行另一調用 RemoveToolSettings CL.EXE 命令行而不是附加到同一個 varSwitch 語句的末尾刪除定義中刪除另一個的預處理器定義。 此外,請記住,工具設置的是大小寫區分"/ d"和"/ D"不是相同的操作。
    • 遺憾的是,AddToolSettings、 RemoveToolSettings,和 AddCustomBuildStep (另一個 IConfiguration 方法) 運行僅在 Visual C++ 版本 5.0 在整個項目上,他們不能進行工具設置或創建自定義生成步驟單個文件。 是例如最好通常添加處理使用 MIDL 文件并生成 TLB 和其他所需的項目文件的一個項目的 IDL 文件的自定義生成步驟。 在 Developer Studio 97 對象模型不支持此。 單個文件的自定義生成步驟需要自定義應用程序向導生成項目后手動添加。

      Visual C++ 版本 6.0 對象模型不會支持若要更改的方法文件設置,并添加自定義生成步驟的文件。 請參閱 Visual C++ 版本 6.0 文檔的下列方法配置對象:
      AddFileSettings
      RemoveFileSettings
      AddCustomBuildStepToFile

    轉載自:http://support.microsoft.com/kb/173483

    大學生計算機學習社區
    posted @ 2009-03-08 00:00 CowNew開源團隊 閱讀(594) | 評論 (0)編輯 收藏

      2005年的時候我大學畢業來到深圳工作,公司負責解決戶口,因此戶口也就落到了深圳。為啥我要說找個呢?難道我要做“深戶擔保”?哈哈,我不會貼小廣告,具體原因后面你就明白了。

      05年春節我開辦了一個開源技術研發組織,因此就創建了第一個網站cownew.com,也就立即備案了,一個禮拜備案就下來了。

      06年底我離開了深圳來到北京發展。轉眼到了2008年,我準備創建一個為計算機相關專業提供學習指導服務的網站,所以申請了域名jsj321.com(含義是“計算機321”),然后申請了備案,但是一個多月過去了備案還是沒有通過,無奈之下只好花了幾十塊錢在淘寶網上通過網上那些宣傳“快速備案”進行了備案,10分鐘就“獲得了備案”,6個月之后終于收到哦啊了,計算機321沒有通過備案的通知,然后我去備案中心一查原來計算機321買的那個“快速備案”也是上了備案騙子的當了,他們完全是用自己ISP的權限在修改自己手頭已有的備案的域名,沒過幾天他又用這個備案號幫別人“快速備案”了。希望光大站長以后一定不能上這幫人的當,咱們也一起祝愿這些“備案騙子”生孩子沒屁眼兒!一氣之下計算機321就一直沒有備案,2009年隨著網站的發展壯大,越來越感到原有域名傳播力太差,而且怎么看怎么像垃圾站的域名,所以在會員的幫助下改用了現在的新域名www.rupeng.com (如鵬網),立即備案了,一個禮拜備案就下來了。

      說了一通,到底為啥cownew和如鵬網這么容易備案通過,而計算機321就不容易通過呢?還記得前面我提到的我的戶口落在了深圳嗎?cownew這個域名備案的時候主辦人所在地我當然填的是深圳。而jsj321.com備案的時候由于我在北京,所以主辦人所在地我填的是北京,而身份證當然還是深圳的。在備案如鵬網的時候我就想為什么一個備案快一個備案慢的要命呢?我猜是戶口的原因,因此我在備案如鵬網的時候主辦人所在地也填的是深圳,沒想到確實很快就批準下來了。

      這只是我的一個猜想,不過聯想到目前的戶籍制度,應該是有一定道理的,不是結婚都要回戶籍所在地辦理的嗎?網站備案“回自己家備案”當然會容易很多了。希望正在準備備案的站長可以試一試,也驗證一下我的猜想。

    posted @ 2009-03-06 23:14 CowNew開源團隊 閱讀(466) | 評論 (2)編輯 收藏

    1、SS在后臺:系統設置→搜索優化設置→站點鏈接URL方式修改為“簡短Apache模式”
    2、discuz在后臺:全局→優化設置→搜索引擎優化→URL 靜態化下的幾項全部選中。
    用記事本建立如下內容文件(要另存為,不能重命名,因為重命名無法重命名為只有后綴的文件名):

    RewriteEngine On

    # 修改以下語句中的 /discuz 為你的論壇目錄地址,如果程序放在根目錄中,請將 /discuz 修改為 /
    RewriteBase /forum

    # Rewrite 系統規則請勿修改
    RewriteRule ^archiver/((fid|tid)-[\w\-]+\.html)$ archiver/index.php?$1
    RewriteRule ^forum-([0-9]+)-([0-9]+)\.html$ forumdisplay.php?fid=$1&page=$2
    RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ viewthread.php?tid=$1&extra=page\%3D$3&page=$2
    RewriteRule ^space-(username|uid)-(.+)\.html$ space.php?$1=$2
    RewriteRule ^tag-(.+)\.html$ tag.php?name=$1


    保存到網站根目錄。

    默認CuteFTP是不會顯示.htacess文件的,因為它被Linux認為是隱藏文件,所以需要在cuteftp的過濾器中在彈出的窗口中選中“啟用過濾”和“啟用服務器端過濾”,并在"遠程過濾"中填寫"-a"。

    posted @ 2009-02-06 00:09 CowNew開源團隊 閱讀(1014) | 評論 (0)編輯 收藏

    1、Validator
    2、IsPostBack
    3、AutoPostBack。控件離開焦點的時候自動Post。
    4、repeater控件的使用。:Repeater控件比以前版本的asp.net好用了,只要 Eval就可以了,不用DataBinder.Eval(container.DataItem,"***"):了,只要Eval("Name")就可以,注意不能丟了前面的“#”。
        <asp:Repeater ID="Repeater1" runat="server">
            <HeaderTemplate>
                嘎嘎嘎
            </HeaderTemplate>
            <ItemTemplate>
            <%# Eval("Name")%>
            <%# Eval("Desc")%>
            </ItemTemplate>
        </asp:Repeater>

            protected void Button3_Click(object sender, EventArgs e)
            {
                List<Person> list = new List<Person>();
                list.Add(new Person(){Name="芭芭拉",Desc="白牙唄"});
                list.Add(new Person(){Name="奧巴馬",Desc="黑黝黑"});
                Repeater1.DataSource = list;
                Repeater1.DataBind();
            }
    5、DataList控件:
    (1)行的高亮選中
         <asp:DataList ID="DataList1" runat="server" >
            <SelectedItemStyle BackColor="#FF6666" />
        <ItemTemplate>
            <%# Eval("Name")%>
            <%# Eval("Desc")%>    
            <asp:LinkButton ID="LinkButton1" runat="server" Text="選擇" CommandName="select" />  
        </ItemTemplate>
        </asp:DataList>
    核心是CommandName這個屬性,可選值還有edit、delete等可選值,當按鈕被點擊的時候將會執行EditCommand、DeleteCommand等事件。
    (2)行的在位編輯:
        <asp:DataList ID="DataList1" runat="server"
            oneditcommand="DataList1_EditCommand">
            <SelectedItemStyle BackColor="#FF6666" />
        <EditItemTemplate>
            <asp:TextBox runat="server" ID="t1" Text='<%# Eval("Name")%>' />
            <asp:TextBox runat="server" ID="t2" Text='<%# Eval("Desc")%>' />
            <asp:Button runat="server" Text="提交" CommandName="update" />
        </EditItemTemplate>
        <ItemTemplate>
            <%# Eval("Name")%>
            <%# Eval("Desc")%>    
            <asp:LinkButton ID="LinkButton1" runat="server" Text="編輯" CommandName="edit" />  
        </ItemTemplate>
        </asp:DataList>

            protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
            {
                DataList1.EditItemIndex = e.Item.ItemIndex;
                ReBind();
            }

            private void ReBind()
            {
                List<Person> list = new List<Person>();
                list.Add(new Person() { Name = "芭芭拉", Desc = "白牙唄" });
                list.Add(new Person() { Name = "奧巴馬", Desc = "黑黝黑" });
                Repeater1.DataSource = list;
                Repeater1.DataBind();

                DataList1.DataSource = list;
                DataList1.DataBind();
            }
    (3)行的在位編輯并且提交修改
        <asp:DataList ID="DataList1" runat="server"
            oneditcommand="DataList1_EditCommand"
            onupdatecommand="DataList1_UpdateCommand">
            <SelectedItemStyle BackColor="#FF6666" />
        <EditItemTemplate>
            <asp:TextBox runat="server" ID="t1" Text='<%# Eval("Name")%>' />
            <asp:TextBox runat="server" ID="t2" Text='<%# Eval("Desc")%>' />
            <asp:Button runat="server" Text="提交" CommandName="update" />
        </EditItemTemplate>
        <ItemTemplate>
            <%# Eval("Name")%>
            <%# Eval("Desc")%>    
            <asp:LinkButton ID="LinkButton1" runat="server" Text="編輯" CommandName="edit" />  
        </ItemTemplate>
        </asp:DataList>
        public partial class _Default : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                if (Session["PersonList"] == null)
                {
                    List<Person> list = new List<Person>();
                    list.Add(new Person() { Name = "芭芭拉", Desc = "白牙唄" });
                    list.Add(new Person() { Name = "奧巴馬", Desc = "黑黝黑" });
                    Repeater1.DataSource = list;
                    Repeater1.DataBind();
                    Session["PersonList"] = list;
                }           
            }

            protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
            {
                DataList1.EditItemIndex = e.Item.ItemIndex;
                ReBind();
            }

            private void ReBind()
            {
                DataList1.DataSource = Session["PersonList"];
                DataList1.DataBind();           
            }

            protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
            {
                TextBox nT1 = e.Item.FindControl("t1") as TextBox;
                TextBox nT2 = e.Item.FindControl("t2") as TextBox;
                //不要直接從DataList1.DataSource中取,因為取到的是null
                List<Person> list = Session["PersonList"] as List<Person>;
                Person curPerson = list[DataList1.EditItemIndex];
                curPerson.Name = nT1.Text;
                curPerson.Desc = nT2.Text;
                DataList1.EditItemIndex = -1;
                ReBind();
            }
        }
    6 GridView控件
        <asp:GridView ID="GridView1" runat="server" AllowSorting="True"
            AutoGenerateColumns="False" onrowcommand="GridView1_RowCommand"
            onsorting="GridView1_Sorting">
            <Columns>
                <asp:ButtonField ButtonType="Button" CommandName="DingGou" HeaderText="訂購"
                    ShowHeader="True" Text="訂購" />
                <asp:ButtonField ButtonType="Button" CommandName="TuiDing" HeaderText="退訂"
                    ShowHeader="True" Text="退訂" />
                <asp:BoundField DataField="Name" HeaderText="名稱" SortExpression="Name" />
                <asp:BoundField DataField="Desc" HeaderText="描述" SortExpression="Desc" />
            </Columns>
        </asp:GridView>

            protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
            {
                if (e.CommandName == "DingGou")
                {
                    Debug.WriteLine("第"+e.CommandArgument+"行被訂購");
                }
            }

            protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
            {

            }
    7、用戶控件(UserControl)
    通過向導創建一個UserControl,然后就可以任意編輯這個UserControl,而且還可以為UserControl增加屬性、事件。使用的時候只要將控件直接從SolutionExplorer拖到頁面上就可以。
    8、繼承控件
    (1)通過向導創建一個WebCustomControl。
    (2)定義自己應用界面。需要重載從Control類繼承來的CreateChildControls方法,并在其中生成界面控件。如果用戶定義的控件會在一個頁面中反復使用,最好implements System.Web.UI.INamingContainer,它會為該控件創建一個唯一的命名空間。
    (3)定義自己控件的消息處理函數。自己定義的控件含有兩種類型的消息,一是包含的子控件所產生的消息,二是自定義的控件消息。
    9、向工程中添加“Global Application Class”就可以添加Global.asax,在這里可以監聽Application、Session的生命周期。
    10、(1)Response.Redirect("newpage.aspx");客戶端轉發
    (2)Server.Transfer("newpage.aspx");服務器端轉發
    11、web.config配置
    (1)  <appSettings>
        <add key="FTP" value="127.0.0.1"/>
      </appSettings>
      this.Title = WebConfigurationManager.AppSettings["FTP"];
    (2)
      <connectionStrings>
        <add name="mydb"  connectionString="jdbc:ddd"/>
      </connectionStrings>
      this.Title = WebConfigurationManager.ConnectionStrings["mydb"].ConnectionString;
    12、BulletedList就是<ul><ol>
    13、PostBack本質論
    ASP.NET also adds two additional hidden input fields that are used to pass information
    back to the server. This information consists of the ID of the control that raised the event and
    any additional information that might be relevant. These fields are initially empty, as shown
    here:
    <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
    <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
    The __doPostBack() function has the responsibility for setting these values with the
    appropriate information about the event and then submitting the form. A slightly simplified
    version of the __doPostBack() function is shown here:
    <script language="text/javascript">
    function __doPostBack(eventTarget, eventArgument) {
    var theform = document.Form1;
    theform.__EVENTTARGET.value = eventTarget;
    theform.__EVENTARGUMENT.value = eventArgument;
    theform.submit();
    }
    </script>
    14、跨頁表單提交
    在頁1中指定按鈕的PostBackUrl屬性為WebForm1.aspx,這樣表單就會提交到WebForm1.aspx了,然后在WebForm1.aspx中還可以取到前一頁中所有的值:
    TextBox1.Text = PreviousPage.Title;
    還可以將PreviousPage cast成更詳細的頁面子類。
    15、取QueryString的方法:
    Request.QueryString["recordID"]
    16、Server.UrlEncode(lstItems.SelectedItem.Text)
    17、Multiview控件用來實現動態界面,Multiview里嵌套多個view控件,每個view控件里可以方式其他控件。通過控制Multiview控件的ActiveViewIndex屬性來控制不同View的顯示。
    18、Wizard控件比Multiview控件更方面,更像一個TabControl
    19、動態圖片:
    在pageload的事件中:
    Bitmap image = new Bitmap(300, 50);
    Graphics g = Graphics.FromImage(image);
    Response.ContentType = "image/png";
    image.Save(Response.OutputStream,
    System.Drawing.Imaging.ImageFormat.Gif);
    20 頁面導航
    創建SiteMap文件,修改SiteMap文件增加節點。
    在頁面上增加一個SiteMapDataSource,然后只要拖TreeView、Menu、SiteMapPath等控件上來,指定DataSource屬性為SiteMapDataSource就可以了。
    21 單值綁定
    URL = "Images/picture.jpg";
    this.DataBind();
    <asp:CheckBox id="chkDynamic" Text="<%# URL %>" runat="server" />
    22 下拉列表框綁定
        <asp:DropDownList ID="DropDownList1" runat="server" DataTextField="value"
            DataValueField="key">
        </asp:DropDownList>
        IDictionary<string, string> dict = new Dictionary<string, string>();
        dict["1"] = "aa";
        dict["2"] = "bb";
        DropDownList1.DataSource = dict;
        DropDownList1.DataBind();   
    23 設定起始頁:在aspx上點右鍵,選擇“Set as startpage”
    24 程序中數據庫連接字符串的設置
    (1)、web.config中加入: 
    <connectionStrings>
        <add name="DBConnectionString" connectionString="server=192.168.88.128\SQLEXPRESS1;uid=sa;pwd=123456;database=CRM" providerName="System.Data.SqlClient"/>
      </connectionStrings>
    (2)、在IDE中拖放DataSource組件以后,在屬性視圖的ConnectionString屬性中選擇DBConnectionString即可。
    (3)、程序中讀取這個連接字符串的方法:
                System.Configuration.Configuration rootWebConfig =
                    System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
                string connString =
                    rootWebConfig.ConnectionStrings.ConnectionStrings["DBConnectionString"].ConnectionString;
    24 制作簡單的CRUD頁面的步驟:
    (1)拖放一個SqlDataSource組件上來,設定好ConnectionString,命名組件為dsList。
    (2)修改SqlDataSource組件的DeleteQuery屬性為:delete from T_PSI_User where FId=@FId
    InsertQuery屬性為:INSERT INTO T_PSI_User(FId, FUserName, FPassword) VALUES (NEWID(),@FUserName,@FPassword)
    SelectQuery為:select * from T_PSI_User
    UpdateQuery為:Update T_PSI_User set FUserName=@FUserName,FPassword=@FPassword where FId=@FId
    (3)拖放一個GridView組件上來,設定其DataSourceID屬性為dsList。修改AllowPaging、AllowSorting、AutoGenerateDeleteButton、AutoGenerateEditButton屬性為True。設定AutoGeneratedColumns屬性為false。設定DataKeyNames屬性為FId(這樣哪怕隱藏了FId字段,Edit、delete功能也能正常執行了)
    (4)修改GridView的Columns屬性,在彈出的對話框中點擊【RefreshSchema】鏈接,這樣在BoundField下就顯示了FId、FName、FPassword三個字段,將FUserName和FPassword字段Add進來。
    這樣不用一行代碼,有刪、改功能的頁面就做好了。下面來做“增”的功能。
    (5)選擇GridView組件,在智能提示中選擇EditTemplete、然后選擇“EmptyTemplete”,拖放一個FormView組件到EmptyTemplete中,選中Formview組件,在智能提示中設定DataSource為dsList。
    (6)新建一個【新增】按鈕,編輯其Click事件代碼為:
                GridView1.DataSourceID = "";
                GridView1.DataBind();
    (7)設定FormView的ItemInserted事件代碼為:
    RefreshList();
    RefreshList()函數定義如下:
                GridView1.DataSourceID = "dsList";
                GridView1.DataBind();
    這樣“增”的功能就做好了,不過還是有缺憾,那就是顯示出了不歸我們管的FId字段,并且字段名、按鈕都是英文的。
    (8)選中,FormView組件,然后點擊EditTemplete,選中InsertTemplete,這樣就可以刪除不需要的FId字段了,并且可以修改控件布局以及界面的語言文字。
    (9)這樣的話Insert界面中的“Cancel取消”按鈕還是不能用,編輯FormView1的ItemCommand事件,編寫如下的代碼:
                if (e.CommandName == "Cancel")
                {
                    RefreshList();
                }
    25 上面實現CRUD的方法有兩個缺陷:
    (1)需要編寫一個EmptyTemplete
    (2)很難對Edit的控件做定制
    因此我們還是用ListUI和EditUI分置的方法來解決。步驟:
    制作ListUI:
    (1)使用datasource、GridView,不過DataSource只要配置SelectQuery、DeleteQuery即可。
    (2)GridView不自動生成Edit按鈕。
    (3)GridView生成一個ButtonField,標題為“編輯”,CommandName="EditInPage"
            protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
            {
                if (e.CommandName == "EditInPage")
                {
                    int index = Convert.ToInt32(e.CommandArgument);
                    Guid guid = (Guid)GridView1.DataKeys[index].Value;
                    Server.Transfer("/Sys/SysUserEdit.aspx?Action=Edit&FId="+guid);
                }           
            }
    (4)新增按鈕的Onclick事件:
    Server.Transfer("/Sys/SysUserEdit.aspx?Action=Insert");

    制作EditUI:
    (1)拖一個DataSouce控件,按常規配置InsertCommand和UpdateCommand,配置SelectCommand為“SELECT * FROM [T_PSI_User] where 1<>1”,配置UpdateCommand為“”
    (2)拖一個FormView上來,并且修改EditTemplete和InsertTemplte(可以直接將EditTemplete修改后的拷貝到InsertTemplte,注意不要忘了修改Button的CommandName)
    (3)代碼;
            protected void Page_Load(object sender, EventArgs e)
            {
                switch (Request["Action"])
                {
                    case "Edit":
                        dsEdit.SelectCommand = "select * from T_PSI_User where FId=@FId";
                        dsEdit.SelectParameters.Clear();
                        dsEdit.SelectParameters.Add("FId", Request["FId"]);
                        FormView1.ChangeMode(FormViewMode.Edit);
                        break;
                    case "Insert":
                        FormView1.ChangeMode(FormViewMode.Insert);
                        break;
                }
            }

            protected void FormView1_ItemInserted(object sender, FormViewInsertedEventArgs e)
            {
                GogoList();
            }       

            protected void FormView1_ItemUpdated(object sender, FormViewUpdatedEventArgs e)
            {
                GogoList();
            }

            private void GogoList()
            {
                Server.Transfer("/Sys/SysUserList.aspx");
            }
        }
        }
    26、DropDownList實現基礎資料選擇器,比如在商品編輯中的選擇計量單位:
    (1)拖一個針對T_MeasureUnit表的DataSource,比如名字為dsMeasureUnit。
    (2)拖一個商品的Datasource,比如dsMerchan。
    (3)拖一個FormView上來,并且設定其DataSource為dsMerchan
    (4)將一個DropDownList放到FormView中,因為只有這樣才能設定DropDownList本身的綁定。
    (5)選中DropDownList,在智能提示中選擇“ConfigDateSource”,在這里配置上dsMeasureUnit。
    (6)選中DropDownList,在智能提示中選擇“EditDataBindings”,然后設定綁定到dsMerchan的FMeasureUnitId字段。

    源碼:http://www.tkk7.com/Files/huanzhugege/PSI.Net.rar

    posted @ 2009-01-22 18:04 CowNew開源團隊 閱讀(515) | 評論 (0)編輯 收藏

    今天早上聽到這樣一個報道:在全球不景氣的市場環境下,電子游戲業似乎獨自頂住了消極影響,呈現出良好的市場表現,Xbox歐洲銷售同比增長124%。而在美國Xbox銷售同比增長25%,為歷史最好表現。在金融危機下,很多人虛幻世界中尋找慰藉,以轉移注意力:電視劇、網絡、音樂、小說、電子游戲,以此逃避壓力。
    碰到過很多這樣的人,或者一直找不到工作、或者考研失敗或者工作不順心,碰了幾次壁以后不再是“越戰越勇”,而是到游戲、網絡中逃避壓力,靠一次次的打怪、一次次的發灌水帖、看一部部肥皂劇的方式讓自己忘記痛苦,當別人勸告他的時候他還美其名曰“玩網游也是一種創業,也能賺錢”,這不禁讓我想起了老家里一些常年賭博成性的人嘴里嘮叨著“玩麻將也能賺錢”那樣好笑。“玩麻將也能賺錢”的人是賭王,人家的目的是賺錢而不是玩兒;同樣“玩網游的人也能賺錢”的人是代練公司,而不是把玩網游當成逃避手段的懦夫。
    遇到危險時,鴕鳥會把頭埋入草堆里,以為自己眼睛看不見就是安全。事實上鴕鳥的兩條腿很長,奔跑得很快,遇到危險的時候,其奔跑速度足以擺脫敵人的攻擊,如果不是把頭埋藏在草堆里坐以待斃的話,是足可以躲避猛獸攻擊的。 心理學家將這種消極的心態稱之為“鴕鳥心態”。
    “鴕鳥心態”是一種逃避現實的心理,也是一種不敢面對問題的懦弱行為。有鴕鳥心態的人,不敢面對現實,不敢擔當責任,平常大言不慚,遇到事情來臨就畏縮不前了。 課堂上老師要提問的時候,每個學生都噤若寒蟬;做事情失敗的時候靠煙酒麻醉自己;聽說企業要裁員的時候總是認為“還有比我差的的,裁員也輪不到我”;學校里要選人參加軟件大賽的時候,“比我學的好的有的是,輪不到我,我也不去爭了”;考研的時候干脆不去參加考試,為自己考研失敗找理由“我都沒去考試,不能說我能力差了吧”;考試掛科,“我就干脆所有課都掛,難道學校敢開除我?”……
    “遇食頸如鶴,遇事頭如鱉”、“多做多錯、少做少錯、不做不錯”、“天塌下來有高個兒頂著呢”、“眼不見為凈”、“破罐破摔”等等都是鴕鳥心理。
    不敢面對現實,而現實卻不會因為你的躲避而不會發生。該來的始終會來,躲避是沒有用的,只有迎難而上。工作不好找,那就要調整自己的求職策略和求職技巧,必要的話參加培訓班給自己充電;企業要裁員,那就要更努力的工作,不要被末尾淘汰掉;公司待遇不好,那就要增強自己的“殺敵本領”,跳到更好的職位,甚至可以籌備自己創業,金融危機下游戲、網絡等娛樂業以及培訓業反而發展比較快,難道就不能找到一個創業機會,從而使自己在下一個經濟大潮來臨的時候勇立潮頭,要知道現在很多國際性的大公司都是在上一輪的金融危機中脫穎而出的。
    萬事想開點,勇敢面對現實才能把問題解決。逃避、麻醉自己是懦夫的行為,只有迎難而上才是一個真正的男子漢。
    posted @ 2009-01-12 11:59 CowNew開源團隊 閱讀(3400) | 評論 (5)編輯 收藏

    關于女生做IT行業的話題我在jsj321的其他板塊也提到過。我的一個原則就是除了天生的天才巾幗英雄之外(這樣的人我也碰到過不少),大部分女孩子并不適合長期在第一線從事編程工作,這并不是什么性別歧視,而是考慮到女孩子的生理、心理等各方面的因素說出的這句話。但是這并不說明女孩子不能從事IT相關工作。對于一個計算機專業的女生來說,如果能在IT行業找到自己的位置,那是比轉行更加合適的。IT行業的測試工程師(主要做軟件的測試)、軟件配置管理(主要從事軟件的文檔、數據庫管理、源代碼管理等)、項目經理助理(主要輔助項目經理處理項目開發、人員管理中的問題、項目進度管理等)等等這些都是非常適合于女孩子長期發展的,這些職位即對計算機技術有一定要求,而且又不像編程工作一樣對技術要求非常高,我有很多同事都是從事這些工作的女孩子,而且做的都很優秀。
    這些工作畢竟是貼近于編程一線的工作,因此也不能對編程一竅不通,否則溝通起來很麻煩,建議你在上學期間把專業課學好,同時學好英語,并且鍛煉自己的寫作能力、溝通能力等,畢業后你的前途是不可限量的。有更多問題歡迎訪問http://www.jsj321.com

    from:http://www.jsj321.com/forum/viewthread.php?tid=420&extra=page%3D1

    posted @ 2008-11-27 22:37 CowNew開源團隊 閱讀(1031) | 評論 (0)編輯 收藏

     

    引用:
    Real提問:
    小有迷茫,求教
    先聲明吧,也許這些話過幾天自己都會忘記,但確實有發出來的沖動,而且也是反復看過楊老師以前的文章才發出來的。別批評我是愚昧的發牢騷吧。呵呵。
    最近一個公司聯系到班長說是免費實習,去了以后才發現是個培訓機構。教了我們一些ASP的基礎,連接數據庫,做一些最基本的增刪改查,但也有些想法。
    1.他們告訴我們代碼不是最重要的,代碼看看書誰都會,重要的是流程。說剛出來的大學生都是做編碼和測試人員,等做了5,6年以后熟悉了再去做設計人員。這對剛學了半年專業課,上了兩年半大學還一直以代碼至上,看到代碼就想吃通吃透的我(們)有些茫然了。真的是這樣?
    2.培訓是一條捷徑。楊老師說過嘛,經過2,3個月的培訓,我能會,別人也可以會,沒有門檻的。但是現實是,人家說找工作就是讓你敲代碼,熟不熟一眼就看出來了,再告訴我們老板要的是上來能干活的人,自己培訓自己很重要。當然,人家是搞培訓的,自己也是王婆賣瓜。我們雖然要保持警惕,但事實也正是這樣,從上屆學生的情況看,在校內接受過一個7000塊錢/5個月 的JAVA培訓的同學確實找工作比較容易。我們呢?要知識還是要技能?是個問題。畢竟時間有限。
    3.剛好也是學期末,做課程設計,最早出來的是數據庫的課程設計題目,老師要求也很有意思,前臺的語言不限制,于是大家都去圖書館借這樣那樣的書,走近圖書館,看到5花6門的書,說以前不迷茫只知道學老師教的也許是真的什么都不懂,現在什么都懂一點,迷茫感真的來了。
    我以后是做什么?我到的是一個B/S還是一個C/S模式的公司?我應該拿我的這次課程設計來強化自己的哪方面?甚至還真有點“什么技術有前途”的小笑話。
    楊老師說大公司考察的就是書本上的內容,好吧,我們不是清華的計算機系,我們當然不能拿我們的前途豪賭,到時候進不了大公司又沒有一定的技能——兩手空空?
    太亂了...也許過幾天自己就好了,呵呵。
    ******************************************

    real是jsj321的老會員了,而且你也看過網站上的很多文章了,所以我的“陳詞濫調”就不在這里重復了,直接解答你的問題。
    1、“代碼看看書誰都會,重要的是流程”。對于信息系統開發而言,確實有“業務重于代碼”的說法,而且我非常同意,因為在信息系統中系統是供用戶使用的,是給用戶帶來價值的,所以符合用戶需求的系統才是好系統,采用什么技術、用什么樣的代碼寫出來的則不是用戶關心的。這是站在用戶的角度看待技術和業務的,但是被很多從業者偷換概念用來進行妄自菲薄。對于用戶來說當然是一個軟件開發商怎么開發的他們不用關心,但是對于軟件開發商本身也要這么想嗎?對于一個企業來說它的唯一使命就是“赤裸裸的賺取利潤”,什么是利潤?利潤就是“收入減去成本”,增加利潤只有兩條途徑“增加收入”或者“削減成本”,企業的收入增長非常難,而“削減成本”則相對較容易。那么對于軟件企業來說怎么“削減成本”呢?當然是縮短軟件的開發時間了。怎么縮短軟件的開發時間呢?軟件是軟件工程師編寫出來的,當然就是要求軟件工程師有比較高的編程水平,盡快的開發出高質量的程序來。站到軟件開發商老板的角度想一下你還認為軟件工程師的水平不重要嗎?
    “等做了5,6年以后熟悉了再去做設計人員”,“設計人員”這個詞是一個非常寬泛的詞,軟件開發工程師、UI設計師、架構師、業務分析師等等都可以叫做設計人員。我估計他這里說的“設計人員”其實應該指得是“業務分析師”吧。業務分析師是站在用戶的角度設計軟件的整體業務架構以及產品功能,不用再思考用什么代碼編寫某個功能,企業里的業務分析師有兩個來源:從軟件工程師中來、從業務人員中來。比如對于一個財務軟件來說,它的業務分析師會從資深的財務系統軟件工程師以及經驗豐富的會計師中來。一個企業里軟件工程師有很多,而業務分析師則是相對來說比較少的,那么什么樣的人才會成長為業務分析師呢?一個業務分析師必須有很豐富的項目經驗并且在這些項目從事核心工作,一個軟件工程師如果沒有過硬的編程本領,連簡單的功能都不能實現,連軟件工程師的本質工作都沒能力完成,老板怎么可能讓你參與項目的開發又怎么敢讓做核心工作呢???沒做過這些你又怎么能獲得這些經驗呢?又怎么能成長為業務分析師呢?
    “代碼看看書誰都會”,這樣的話工作幾年后的人說還差不多,對于還沒畢業,只學過編程語法、根本沒寫過像樣程序的人敢這么說嗎?我給你一個功能需求你能想出來大體用程序怎么實現嗎?相信大部分同學都說不出來。一個長跑運動員可以說“跑步就是兩條腿前后交替著運動唄”,但是一個剛會四條腿爬著走的嬰兒如果說出“跑步誰都會”的話,我只能對著蔚藍的天空大喊“My God,救救這個孩子吧!”。對著在校生說“代碼看看書誰都會,重要的是流程”這種話的人不是存心誤人子弟的人就是什么都不懂還要裝牛B的人。
    2、“經過2,3個月的培訓,我能會,別人也可以會,沒有門檻的”。其他同學有類似問題也可以訪問jsj321.com。我說這句話是對那種把就業培訓當成救命稻草的同學說的,這樣的同學只是希望大學四年不好好學習,盼望著畢業以后找一個承諾“高薪就業、100%就業”的培訓機構學幾個月就成功當上白領甚至金領的人說的。對于自學能力稍差的同學來說,在培訓機構有老師教能快速的提高技術水平,我從來沒否定過。只不過不希望同學們只是寄托于培訓機構而已,他們不是你什么都不學都能讓你高薪就業的活神仙,不僅要在培訓機構好好學,在進這些培訓機構之前也要好好學習。爭取在大學期間、在培訓期間比別人多用功一些,多學一些,那些參加培訓的人也不是100%掌握了老師講的東西,他們能掌握20%就算不錯了,只要你比他們多掌握10%,你不就是相當于“你會的他們不會”了嗎?
    3、“我以后是做什么?我到的是一個B/S還是一個C/S模式的公司?我應該拿我的這次課程設計來強化自己的哪方面?”別想太遠了,踏踏實實的走好腳下的每一步,路是人走出來的,整天抬著頭看遠方的人肯定會被腳下的石子絆倒。我這并不是讓同學們沒有大的理想,而是希望同學們在走好每一步的基礎上再去思考那些問題。等你真實的走過這段以后你會發現你現在思考的問題有多么“傻”(請原諒我用這個詞)。把課程設計做好吧,不要抄襲,把課程設計自己做好,哪怕課程設計做好了也要繼續研究相關的技術,這是最實際的事情。
    4、“我們不是清華的計算機系,不能拿我們的前途豪賭,到時候進不了大公司又沒有一定的技能——兩手空空”。你可能誤解我的意思了,并不是只有大公司才注重基礎,除了少數草臺班子公司或者皮包公司之外,大部分大中小型公司都是非常歡迎基礎扎實的求職者的,而且都會委以重任和重點培養。當然所有公司也都歡迎接受過短期職業培訓能夠熟練使用一兩門工具進行開發的人,但是這些人公司不會重點培養,而且只會給他們一些重復性的勞動,就像流水線上的工人,有幾個工廠會把流水線工人培養成骨干呢?又有幾個流水線工人認為自己有前途呢?"上等男人豪賭,中等男人不賭,下等男人濫賭"。

    from:http://www.jsj321.com/forum/viewthread.php?tid=431&extra=page%3D1

    posted @ 2008-11-27 22:32 CowNew開源團隊 閱讀(1163) | 評論 (0)編輯 收藏

    僅列出標題
    共30頁: 上一頁 1 2 3 4 5 6 7 8 9 下一頁 Last 
    主站蜘蛛池模板: 伊人久久大香线蕉免费视频| 免费很黄无遮挡的视频毛片| 久久久久久国产精品免费无码| 亚洲一区二区女搞男| 岛国岛国免费V片在线观看| 亚洲无线一二三四区手机| 三上悠亚电影全集免费| 国产成人亚洲综合色影视| 玖玖在线免费视频| 亚洲高清美女一区二区三区| 91免费国产在线观看| 亚洲国产精品无码第一区二区三区| 美女黄网站人色视频免费国产| 亚洲成在人线在线播放无码| www国产亚洲精品久久久| 成人精品视频99在线观看免费| 久久青青成人亚洲精品| 精品久久8x国产免费观看| 亚洲乱色熟女一区二区三区蜜臀| 国产成人精品免费视频软件| 狠狠躁狠狠爱免费视频无码| 久久久久亚洲精品无码蜜桃| 永久免费AV无码国产网站 | 成人免费午夜视频| 日本亚洲中午字幕乱码| 国产午夜亚洲精品理论片不卡| 中文字幕无码日韩专区免费| 亚洲国产品综合人成综合网站| 免费的一级黄色片| 美女无遮挡拍拍拍免费视频| 久久精品国产亚洲AV大全| 国产成人在线免费观看| 免费看成人AA片无码视频吃奶| 亚洲国产成人99精品激情在线| 亚洲国产一区二区视频网站| 亚洲免费在线播放| 国产成人亚洲精品播放器下载| 久久精品亚洲日本佐佐木明希| 免费观看毛片视频| 三年片在线观看免费大全电影 | 免费无遮挡无码视频网站|