在插入之前将Formview文本框更改为正确的大小写

时间:2011-03-30 21:31:01

标签: asp.net visual-studio-2008 case formview

我知道这可能很容易,但我看不到树木的森林,我看到的树木越多,嗯,你知道。

我有一个带有在Visual Studio(asp.net 3.5)中设计的formview的aspx网页,它使用参数来更新我的数据库。通常,有人通过网络将他们的姓名或地址全部上限,然后提交。由于在更改案例时似乎有很多变量需要考虑,我认为当有人处理它时,他们会有一个按钮,他们可以点击这些按钮会改变某些字段(即名字,姓氏,街道地址)到因此应该更新sql字段(是的,我想更新数据库,而不仅仅是演示文稿)。

我尝试过使用我发现的几个脚本/东西,但想想因为我知道一些,我会让他们混淆。我已经顽固地坚持了几天,现在我已经落后了!请帮忙!

代码是:

    <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:techpreppetitionConnectionString %>"
    SelectCommand="SELECT FirstName, LastName, ContactID FROM test ORDER BY LastName"
    UpdateCommand="UPDATE test SET LastName = @LastName,FirstName =@FirstName WHERE (ContactID = @ContactID)">
    <UpdateParameters>
        <asp:Parameter Name="LastName" Type="String" />
        <asp:Parameter Name="FirstName" Type="String" />
        <asp:Parameter Name="ContactID" Type="Int32" />
    </UpdateParameters>
</asp:SqlDataSource>
<asp:FormView ID="FormView1" runat="server" DataKeyNames="ContactID" DataSourceID="SqlDataSource2"
    Width="750px" AllowPaging="True" DefaultMode="Edit">
    <EditItemTemplate>
       <table>
            <tr>
                <td>
                    First Name<br />
                    <asp:TextBox ID="txtFirstName" runat="server" Text='<%# Bind("FirstName") %>' />
                    </td>
                <td>  &nbsp;</td>
                <td>
                    Last<br />
                    <asp:TextBox ID="txtLastName" runat="server" Text='<%# Bind("LastName") %>' />
                    </td>
            </tr>
        </table>
        <br />

        <asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update"
            Text="Update" />
        <asp:LinkButton ID="UpdateCancelButton" runat="server" CausesValidation="False"
            CommandName="Cancel" Text="Cancel" />
    </EditItemTemplate>
</asp:FormView>

2 个答案:

答案 0 :(得分:0)

您可以编写一个sql用户定义函数,该函数接受字符串输入并返回格式化字符串。在插入/更新字段之前使用此功能。

E.g。 InitCap user defined function

修改1:

在javascript中查看InitialCaps

以下是我放在一起使用它的示例:

$(function() { 
            $(".txtInfo").blur(function() {
                $(this).val(InitialCaps($(this).val()));
            });
         });
        function InitialCaps(theString) {
            theString = theString.toLowerCase();
            theString = theString.substr(0, 1).toUpperCase() + theString.substring(1, theString.length);

            var i = 0;
            var j = 0;
            while ((j = theString.indexOf(" ", i)) && (j != -1)) {
                theString = theString.substring(0, j + 1) + theString.substr(j + 1, 1).toUpperCase() + theString.substring(j + 2, theString.length);
                i = j + 1;
            }
            return theString;
        }

 <asp:TextBox ID="TextBox1" runat="server" CssClass="txtInfo"></asp:TextBox>

使用jquery在文本框模糊上调用该函数。

此外,如果您找到更好的功能,只需替换对该功能的调用,即

而不是$(this).val(InitialCaps($(this).val()));

你做$(this).val(YourInitialCaps($(this).val()));

编辑2:

好的,我明白了。查看我的更新代码。我在文本框中添加了属性CssClass =“txtInfo”,并使用类选择器在jquery中获取对TB的引用。

答案 1 :(得分:0)

你正在寻找这样的东西吗?它会将文本转换为标题案例: C#

TextInfo UsaTextInfo = new CultureInfo("en-US", false).TextInfo;
//Return title case
return UsaTextInfo.ToTitleCase(txt);

Theres也是一个可以执行此操作的JavaScript库,因此您可以使用onblur来格式化文本。 http://individed.com/code/to-title-case/