[C#]下拉選單改變 TR style 的 display 狀態,並在pageload後保存

CS  //此寫法是笨方法,直接在pageload再判斷一次
#region javascript改變display值需要pageload時再做一次,值會loaddefault
        ScriptManager.RegisterStartupScript(Page, GetType(), "displaytr", "<script>displaytr()</script>", false);
        #endregion


ASPX
<script type="text/javascript">
        function displaytr() {
            var displayvalue = document.getElementById('ctl00_ContentPlaceHolder1_fddlFORM').value; //下拉選單的值
            var tr01 = document.getElementById('tr01');
            var tr02 = document.getElementById('tr02');
            var tr03 = document.getElementById('tr03');

            if (displayvalue == 'Y') {
                tr01.style.display = '';
                tr02.style.display = '';
                tr03.style.display = '';
            }
            else {
                tr01.style.display = 'none';
                tr02.style.display = 'none';
                tr03.style.display = 'none';
            }         
        }
    </script>

<td id="tdFORM2" rowspan="1">
                            <iFlow:FDataDropDownList ID="fddlFORM" runat="server" Title="" Width="95%" ColumnName="MERGEFLAG" onchange="displaytr()">
                                <asp:ListItem Value="Y">是</asp:ListItem>
                                <asp:ListItem Value="N" Selected="True">否</asp:ListItem>
                            </iFlow:FDataDropDownList>
                        </td>


<tr id="tr01" style="display:none;">
                        <td colspan="6">
                            <asp:Label ID="Label30" runat="server" Text="採購建議廠商(請從下方表列勾選)" Width="99%" Font-Bold="True"
                                BackColor="#FFFF99"></asp:Label>
                        </td>
                    </tr>
                    <tr id="tr02" style="display:none;">
                        <td align="right">
                            建議廠商
                        </td>
                        <td align="center">
                            <iFlow:FDataTextBox ID="ftbVENDORNO" runat="server" Width="7%" ColumnName="VENDORNO"
                                Title="建議廠商序號" Font-Size="Medium" BackColor="Gainsboro" isRequired="true"></iFlow:FDataTextBox>
                            <iFlow:FDataTextBox ID="ftbVENDORNM" runat="server" Width="75%" ColumnName="VENDORNM"
                                Title="建議廠商名稱" Font-Size="Medium" BackColor="Gainsboro"></iFlow:FDataTextBox>
                        </td>
                        <td align="right">
                            建議總價
                        </td>
                        <td align="center">
                            <iFlow:FDataTextBox ID="ftbVENDORAMT" runat="server" Width="95%" ColumnName="VENDORAMT"
                                Title="建議廠商總價" Font-Size="Medium" BackColor="Gainsboro"></iFlow:FDataTextBox>
                        </td>
                        <td align="right">
                            付款方式
                        </td>
                        <td align="center">
                            <iFlow:FDataTextBox ID="ftbVENDORPAYMODE" runat="server" Width="95%" ColumnName="VENDORPAYMODE"
                                Title="付款方式" Font-Size="Medium" BackColor="Gainsboro"></iFlow:FDataTextBox>
                        </td>
                    </tr>
                    <tr id="tr03" style="display:none;">
                        <td align="right">
                            預定付款日
                        </td>
                        <td align="center">
                            <iFlow:FDataTextBox ID="ftbVENDORPAYDATE" runat="server" ColumnName="VENDORPAYDATE"
                                Title="預定付款日" Width="87%" Font-Size="Medium" BackColor="Gainsboro"></iFlow:FDataTextBox>
                        </td>
                    </tr>

[JavaScript]檢查gridview textbox 只能輸入發票2位英文大寫+8位數字

 <script type="text/javascript">
        ////檢查gridview textbox 只能輸入發票2位英文大寫+8位數字
        function isINVNO(textControl)
        {
            var str = textControl.value;
            if (str.length = 10)
            {
                var regexp = /^[a-zA-Z]{2}[0-9]{8}$/;
                  if (!regexp.test(textControl.value))
                  {
                      alert("發票格式不正確!");
                      textControl.value = "";
                  }
            }
            else
            {
                alert("發票格式不正確!");
                textControl.value = "";
            }
        }
     
    </script>

                            <iFlow:FDataTextBox ID="ftbCHECKINVNO" runat="server" ColumnName="CHECKINVNO" Title="發票號碼" Width="85%"   onchange="isINVNO(this);">

[JavaScript]gridview 總合傳給頁面控制項

    <script type="text/javascript">
        //gridview 總合傳給控制相
        function getTotal(textControl) {
            var tbl = document.getElementById("ctl00_ContentPlaceHolder1_fgvD80");
            var totalpassNum =0  ;
            var totalamtNum =0 ;

            totalpassNum = parseInt(totalpassNum)

            //i從1開始,因為title不用找
            for (i = 1; i < tbl.rows.length; i++) {
                //取得cell裡面第一個TextBox

                if (Number(tbl.rows[i].cells[8].getElementsByTagName("input")[0].value))
                {
                    totalpassNum = totalpassNum + parseInt(tbl.rows[i].cells[8].getElementsByTagName("input")[0].value);
                }
                //if (Number(tbl.rows[i].cells[9].getElementsByTagName("input")[0].value)) {
                //    totalpassNum = totalpassNum + tbl.rows[i].cells[9].getElementsByTagName("input")[0].value;
                //}
            }
            //傳給頁面控制項
            document.getElementById("ctl00_ContentPlaceHolder1_ftbCHECKNUM").value = totalpassNum;
            //document.getElementById("ctl00_ContentPlaceHolder1_ftbCHECKAMT").value = totalamtNum;
        }
   </script>

 <asp:TemplateField HeaderText="合格數量">
                    <ItemTemplate>
                        <asp:TextBox ID="tbCHECKNUM_D80" runat="server" Text='<%# Eval("CHECKNUM") %>' Width="95%"  onkeypress="return IsIntText();" onchange="getTotal(this);" ></asp:TextBox>
                    </ItemTemplate>
                </asp:TemplateField>

檢查gridview textbox 只能輸入數字+倒退鍵

    <script type="text/javascript">
        //檢查gridview textbox 只能輸入數字+倒退鍵
        function IsIntText() {
            var charkeycode = window.event.keyCode;
            if (charkeycode > 47 && charkeycode < 58 || charkeycode == 8) {
                return true;
            }
            return false;
        }
</script>


                <asp:TemplateField HeaderText="產品數量">
                    <ItemTemplate>
                        <asp:TextBox ID="tbPRODUCTNUM_D80" runat="server" Text='<%# Eval("PRODUCTNUM") %>' Width="95%"  onkeypress="return IsIntText();"></asp:TextBox>
                    </ItemTemplate>
                </asp:TemplateField>

[C#-dataset]型別 ''DBNull'' 轉換為型別 ''String'' 是無效的

1. 檢查是否有該給的欄位沒有傳給DB,透過DataSet要確認為最新修改

2. 檢查傳給DatasSet的欄位,是否為null

3. 依照寫法,檢查從aspx gridview裡是否缺少欄位,卻在dataset有設定

[DataSet Bug]無法啟用條件約束。一或多個資料列的值違反非 Null、唯一或外部索引鍵條件約束

在使用TableAdapter作Query時發生 1. 原因為有些資料欄位Query出來後為null值 但是該欄位在dbDataSet的屬性AllowDBNull為False 因此把該欄位(或乾脆把全部欄位屬性AllowDBNull改為True 2. maxLength 檢...