Перед вставкой измените текстовые поля Formview на правильный регистр - PullRequest
0 голосов
/ 31 марта 2011

Я знаю, что это, вероятно, легко, но я просто не вижу forrest для деревьев, и чем больше деревьев я смотрю, ну, вы знаете.

У меня есть веб-страница aspx с формой просмотра, разработанной в Visual Studio (asp.net 3.5), которая использует параметры для обновления моей базы данных. Очень часто кто-то помещает свое имя или адрес в шапки через Интернет, а затем отправляет его. Так как, кажется, существует очень много переменных, которые необходимо учитывать при изменении регистра, я думаю, что когда кто-то обрабатывает его, у него будет кнопка, которую он может нажать, чтобы изменить определенные поля (например, имя, фамилия, адрес улицы) на поэтому необходимо обновить поля 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 голосов
/ 31 марта 2011

Вы ищете что-то подобное?Он преобразует текст в регистр заголовков: C #

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

Существует также библиотека javascript, которая сделает это, так что вы можете использовать onblur для форматирования текста.http://individed.com/code/to-title-case/

0 голосов
/ 31 марта 2011

Вы можете написать пользовательскую функцию sql, которая принимает ввод строки и возвращает отформатированную строку. Вы используете эту функцию перед тем, как вставлять / обновлять свои поля.

например. Пользовательская функция InitCap .

Редактировать 1:

Проверьте это InitialCaps в JavaScript:

Вот пример, который я собрал, чтобы использовать его:

$(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" в текстовое поле и получил ссылку на TB в jquery, используя селектор класса.

...