Jquery在选择radiobutton Formatter时面临的问题。 [英] problem facing in Jquery on selecting radiobutton Formatter.

查看:71
本文介绍了Jquery在选择radiobutton Formatter时面临的问题。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我从网格中选择任何记录进行编辑时,我想启用编辑按钮。应该禁用页面加载编辑按钮。如果我在文本框中添加新条目,则应该启用保存按钮并禁用编辑按钮。请查找代码如下。

i want to enabled the edit button when i select any records for editing from grid .on page load edit button should be disabled.if i put new entry in textboxes save button should get enabled and edit button get disabled.please find the code given below.

<%@ Page Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="HomePage.aspx.cs"

    Inherits="QC.UI.WEB.QCApplication.HomePage" %>

<asp:Content ID="Content" ContentPlaceHolderID="MainContent" runat="server">
    <table class="style1">
        <tr>
            <td class="style2">
                ID:
            </td>
            <td>
                <asp:Label ID="idLabel" runat="server"></asp:Label>
            </td>
        </tr>
        <tr>
            <td class="style2">
                FirstName:
            </td>
            <td class="style3">
                <input type="text" id="firstNameTextBox" />
            </td>
        </tr>
        <tr>
            <td class="style2">
                LastName :
            </td>
            <td class="style3">
                <input type="text" id="lastNameTextBox" />
            </td>
        </tr>
        <tr>
            <td class="style2">
                NetworkId :
            </td>
            <td class="style3">
                <input type="text" id="networkIdTextBox" />
            </td>
        </tr>
        <tr>
            <td class="style2">
                Role :
            </td>
            <td class="style3">
                <select id="roleDropDown">
                    <%--need to hardcode value then it will reflect in textbox--%>
                    <option value="***Select***">***Select***</option>
                    <option value="Qc User">Qc User</option>
                    <option value="Qc Manager">Qc Manager</option>
                    <option value="SeniorManager">SeniorManager</option>
                </select>
            </td>
        </tr>
        <tr>
            <td class="style2">
                Admin :
            </td>
            <td class="style3">
                <label id="adminChkbox">
                    <input name="MyCheckBox" type="checkbox" value="1" /></label>
            </td>
        </tr>
    </table>
    <%--calling jquery function with ID--%>
    <input type="button" id="saveClickButton" value="Save" onclick="return saveClickButton_onclick()" />
    <%--calling jquery function with ID--%>
    <input type="button" id="editButton" value="Edit"/>
    <input type="button" id="cancelButton" value="Cancel" onclick="return cancelButton_onclick()" />
    <%--  <tr>
            <td class="style2">Percentage : </td>
            <td class="style3"><asp:TextBox ID="percentageTextBox" runat="server"></asp:TextBox> </td>--%>
    <div class="row-fluid">
        <div id="userGrid" style="width: 100%; height: 300px;">
        </div>
        <div id="appPager" style="width: 100%; height: 5px;">
        </div>
    </div>
    <script>

        var userEntity;
        var usersList;
        ///*************Page Load Function in Jquery*************
        $(function () {
            try {
                manageOverlay(true);
                debugger;
                //var t = <%=UsersList %>;
                usersList = JSON.parse('<%=UsersList %>');
                populateUserGrid();
                forButtonEnabledDisabled();
                setButtonEvents();
                $('#roleDropDown').select2();
                $.ajaxSetup({
                    async: false
                });
            } catch (exception) {
                manageOverlay(false);
                alert(exception);
            }

        });
        //******Second Function()****
        function validateValue() {
            debugger;
            var regexpName = /^[A-Za-z][^\s]*$/;
            if (!regexpName.test(this.$('#firstNameTextBox').val())) { //we r directly inserting value.
                alert("Textbox value not be numbers and cannot be blank");
                return false;
            }
            var regexpLastName = /^[A-Za-z][^\s]*$/;
            if (!regexpLastName.test($('#lastNameTextBox').val())) {
                alert("Textbox value not be numbers and cannot be blank");
                return false;
            }
            var regexpNetworkID = /^[A-Za-z0-9]*$/;
            if (!regexpNetworkID.test($('#networkIdTextBox').val())) {
                alert("Textbox value must be alphanumeric and textbox not be empty");
                return false;
            }
            var roleDropDownList = $('#roleDropDown').val();
            if ($('#roleDropDown').val() < 1) {
                alert('select the Role');
                return false;
            }

            return true;
        }
        //****first Function*****
        function setButtonEvents() {
            debugger;
            $('#saveClickButton').click(function () {
                debugger;
                try {

                    manageOverlay(true);
                    selectedRow = null;
                    if (validateValue() == true) {
                        saveUser();
                    }
                }
                catch (exception) {
                    manageOverlay(false);
                    alert(exception);
                }
            });

            //**********************calling jquery function on edit Button.******************
            $('#editButton').click(function () {
                debugger;
                //if (!$("input:checked").val()) for single .
                if (!$('input[type="radio"][name="userMasterRadio"]:checked').val()) {//for Multiple..checking value selected or not..it will give for editing
                    alert("Please select the Records for edit");
                    return false;
                }
                setFieldValues();
            });
        }
        ///*****Third Function
        function saveUser() {
            debugger;
             var userEntity = setUserEntity();
             userEntity = JSON.stringify(userEntity);
             $.ajax({
                url: 'HomePage.aspx/SaveUser',
                type: 'POST',
                contentType: 'application/json; charset=utf-8',
                dataType: "json",
                data: '{"user":' + userEntity + '}',
                success: function (result) {
                    debugger;
                    if (result.d != '') {
                        alert('Failed to save user.');
                        manageOverlay(false);
                    }
                },
                error: function (error) {
                    debugger;
                    manageOverlay(false);
                    alert(error.responseText);
                },
                async: false
            });
        }

        //******Fourth Function*******
        function setUserEntity() {
            debugger;
            if ($('#firstNameTextBox').val() != '') {
                userEntity.FirstName = $('#firstNameTextBox').val();
            }
            if ($('#lastNameTextBox').val() != '') {
                userEntity.LastName = $('#lastNameTextBox').val();
            }
            if ($('#networkIdTextBox').val() != '') {
                userEntity.NetworkId = $('#networkIdTextBox').val();
            }
            if ($('#roleDropDown').val() != '') {
                userEntity.Role = $('#roleDropDown').val();
            }
            return userEntity;
        }
        var userColumn;
        var appDataView;

        //****************for Binding the grid function calling*******************
        function populateUserGrid() {
            debugger;
            var sortDir;
            var sortCol = 'FirstName';
            userGrid;
            debugger;
            var columns = [
                            { id: "userMasterRadioSelection", name: "", field: "Id", formatter:radioFormatter }, //for Displaying RadioButton,ID is unique
                            {id: "firstName", name: "First Name", field: "FirstName", sortable: true },
                            { id: "lastName", name: "Last Name", field: "LastName" },
                            { id: "networkId", name: "Network Id", field: "NetworkId" },
                            { id: "roleDropDown", name: "Role", field: "Role" },
                            { id: "id", name: "", field: "Id", width: 0, minWidth: 0, maxWidth: 0, resizable: false, sortable: false, formatter: idformatter}];

            var options = {
                //editable: true, Online Editable
                enableCellNavigations: true,
                enableColumnRecorder: false,
                enableAddRow: false,
                asyncEditorLoading: false,
                dataItemColumnValueExtractor: compositeDataItemColumnValueExtractor,
                autoEdit: false
            };

            var dataView = new Slick.Data.DataView();
            userGrid = new Slick.Grid("#userGrid", dataView, columns, options);
            userGrid.setSelectionModel(new Slick.RowSelectionModel());

            var columnpicker = new Slick.Controls.ColumnPicker(columns, userGrid, options);

            userGrid.onSort.subscribe(function (e, args) {
                sortDir = args.sortAsc ? 1 : -1;
                sortCol = args.sortCol.field;
                if ($.browser.msie && $.browser.version <= 8) {
                    // using temporary Object.prototype.toString override
                    // more limited and does lexicographic sort only by default, but can be much faster

                    // use numeric sort of % and lexicographic for everything else
                    dataView.fastSort(sortCol, args.sortAsc);
                }
                else {
                    // using native sort with comparer
                    // preferred method but can be very slow in IE with huge datasets
                    dataView.sort(function (a, b) {
                        var x = a[sortCol], y = b[sortCol];
                        return (x == y ? 0 : (x > y ? 1 : -1));
                    }, args.sortAsc);
                }
            });

            dataView.onRowCountChanged.subscribe(function (e, args) {
                userGrid.updateRow(args.rows);
                userGrid.render();
            });

            dataView.onRowsChanged.subscribe(function (e, args) {
                userGrid.invalidateRows(args.rows);
                userGrid.render();
            });
            // initialize the model after all the events have been hooked up
            dataView.beginUpdate();
            //Set data source
            dataView.setItems(usersList, 'Id');
            dataView.endUpdate();
            $("#gridContainer").resizable();
        }

        //For Displaying RadioButton,In Formatter we can use dropdown,radiobutton,textbox any cotrols.
        function radioFormatter(row, cell, val, columnDef, dataContext) {
            debugger;
            if (dataContext) {
                return '<input type="radio" name="userMasterRadio" value="' + val + '"/>'; //assign RadioButton
            }
            return null;
        }
        //Function for edit button..as we take data from userlist.
        //to get the userid and selected value of record.
        function setFieldValues() {
            debugger;
            var Userid = $('input[type="radio"][name="userMasterRadio"]:checked').val(); //it will get the userid.
            userEntity = $.grep(usersList, function (item) {                     //take the selected value..
                return item.Id.toString() == Userid;
            })[0];                                                             //take the value and put in the textbox
            //( assigning values for textbox we have to define.val && for label we have test) here we r getting value from grid to textbox.
            $('#firstNameTextBox').val(userEntity.FirstName); //puttting value from slickgrid label to textbox..
            $('#lastNameTextBox').val(userEntity.LastName);
            $('#networkIdTextBox').val(userEntity.NetworkId);
            //$("#roleDropDown option:selected").value(userEntity.Role);
            $("#roleDropDown [value='" + userEntity.Role + "']").attr("selected", "selected");
            $("#roleDropDown").select2();
        };
        function forButtonEnabledDisabled() {
            if ($('input[type="radio"][name="userMasterRadio"]:checked').val()) {
                $('#editButton').attr("disabled", false);
            }
            else {
                $('#editButton').attr("disabled", true);
            }
        }

    </script>
</asp:Content>





Thanks

Harshal Raut



Thanks
Harshal Raut

推荐答案

(function () {
try {
manageOverlay(true);
debugger;
//var t = <%=UsersList %>;
usersList = JSON.parse('<%=UsersList %>');
populateUserGrid();
forButtonEnabledDisabled();
setButtonEvents();
(function () { try { manageOverlay(true); debugger; //var t = <%=UsersList %>; usersList = JSON.parse('<%=UsersList %>'); populateUserGrid(); forButtonEnabledDisabled(); setButtonEvents();

< br/>

('#roleDropDown').select2();
('#roleDropDown').select2();


.ajaxSetup({
async: false
});
} catch (exception) {
manageOverlay(false);
alert(exception);
}

});
//******Second Function()****
function validateValue() {
debugger;
var regexpName = /^[A-Za-z][^\s]*
.ajaxSetup({ async: false }); } catch (exception) { manageOverlay(false); alert(exception); } }); //******Second Function()**** function validateValue() { debugger; var regexpName = /^[A-Za-z][^\s]*


这篇关于Jquery在选择radiobutton Formatter时面临的问题。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆