主窗体上放一个Grid,名字为“MainGrid"
ColumnDefinition和RowDefinition的Width和Height属性的值是GridLength对象。和XAML里一样,GridLength有三种值,Auto,Star,Pixel。
下面的代码没有显示设置这两个属性,因为它们的默认值都是 1,正符合等分的要求。
private void MainWindow_Loaded(object sender, SystemWindowsRoutedEventArgs e)
{
for (int i = 1; i <= 5; i++) {
MainGridColumnDefinitionsAdd(new ColumnDefinition());
MainGridRowDefinitionsAdd(new RowDefinition());
}
MainGridShowGridLines = true; // 测试用,可以去掉
Button crl = default(Button);
for (int c = 0; c <= 4; c++) {
for (int r = 0; r <= 4; r++) {
crl = new Button { Content = stringFormat("Button{0}-{1}", r, c) };
GridSetColumn(crl, c);
GridSetRow(crl, r);
MainGridChildrenAdd(crl);
}
}
}
用的是aspnet,GridView实现它的RowDataBound事件,具体看代码,仅供参考:
前台:
<html xmlns="
<head runat="server">
<title></title>
<!--点击GridView任意行的位置,获取该行的ID值-->
<script type="text/javascript">
function getId(row_index) {
var grid_view = documentgetElementById('<%=GridView1ClientID %>');
var rows = grid_viewrows;
var personID = rows[row_index]cells[0]innerHTML;
alert("获取的ID为:" + personID);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:BoundField HeaderText="ID" DataField="ID" HeaderStyle-Width="300px" ItemStyle-HorizontalAlign="Center"
HeaderStyle-BackColor="LightSkyBlue" />
<asp:BoundField HeaderText="Name" DataField="Name" HeaderStyle-Width="300px" ItemStyle-HorizontalAlign="Center"
HeaderStyle-BackColor="LightSkyBlue" />
<asp:BoundField HeaderText="Tel" DataField="Tel" HeaderStyle-Width="300px" ItemStyle-HorizontalAlign="Center"
HeaderStyle-BackColor="LightSkyBlue" />
</Columns>
</asp:GridView>
</div>
</form>
</body>
</html>
后台代码:
public partial class WebForm1 : SystemWebUIPage
{
protected void Page_Load(object sender, EventArgs e)
{
List<Person> list = new List<Person>();
listAdd(new Person("001", "张三"));
listAdd(new Person("002", "李四"));
listAdd(new Person("003", "王五"));
listAdd(new Person("004", "赵六"));
listAdd(new Person("005", "何七"));
GridView1DataSource = list;
GridView1DataBind();
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (eRowRowType == DataControlRowTypeDataRow)
{
int row_index = eRowRowIndex + 1;
eRowAttributesAdd("onclick", "getId(" + row_index + ");");
}
}
}
class Person
{
public Person(string id, string name)
{
ID = id;
Name = name;
}
private string id;
public string ID
{
get { return id; }
set { id = value; }
}
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
private string tel;
public string Tel
{
get { return tel; }
set { tel = value; }
}
}
下拉菜单你自己加进去就行了,东西是filelistbox,现在设file1为filelistbox的名字,那么:Dim obj As ExcelApplication
Set ExcelApp = CreateObject("ExcelApplication") '创建EXCEL对象
Set ExcelBook = ExcelAppWorkbooksOpen(File1Path & "\" & File1) '(打开excel文件,这里的file1path&"\"&file1 指的就是下拉菜单的excel的路径。
Set ExcelSheet = ExcelBookWorksheets(1)’现在就可以利用将excelsheet来读取所选的excel的行和列了。具体为:设置一个变量 dim k as integer,写一个循环以k=1到k=1000(假如你有1000行数据)比如我们读取b1-b1000的值那么就用text1text=ExcelSheetRange("b" & k)Value,然后在后面写一个延时句子,延迟1-2秒,然后完成一个循环,就可以看到text1中的值一直在变化而且是从B1到B1000的值
现在算是吧值取出来了,至于怎么附到grid里应该很容易,自己看着来吧……,希望能多加点分^-^
示例:
var lastFlag ;
$gridTable = $("#gridTable")jqGrid( {
datatype : 'json',
colNames : ['age', 'sex' ],
colModel : [
{name : 'age',index : 'age',width : 80,editable:true,edittype:'text',editrules:{required:true}},
{name : 'sex',index : 'sex',width : 160,editable:true,edittype:'text',editrules:{required:true}}
],
rowNum : 10,
pager : "#tablePager",
multiselect : false,
viewrecords : true,
sortorder : "desc",
jsonReader : {
root : "dataRows",
repeatitems : false
},
caption : "数据列表",
height : "auto",
rownumbers : true,
onSelectRow : function(id){
if(id && id!=lastFlag){
$('#gridTable')jqGrid('saveRow',lastFlag);
lastFlag=id;
}
$('#gridTable')jqGrid('editRow',id,true);
},
editurl : "/propManagedomethod=doNothing"
})
/ 设置增行按钮的click事件处理 /
$("#addButton")bind("click", function() {
var selectedId = $("#gridTable")jqGrid("getGridParam", "selrow");
var dataRow = {
age: "",
sex: ""
};
var ids = jQuery("#gridTable")jqGrid('getDataIDs');
var rowid = getMaxId(ids) + 1;
if (selectedId) {
$("#gridTable")jqGrid("addRowData", rowid, dataRow, "after", selectedId);
} else {
$("#gridTable")jqGrid("addRowData", rowid, dataRow, "last");
}
})
/ 设置删行按钮的click事件处理 /
$("#removeButton")bind("click", function() {
var selectedId = $("#gridTable")jqGrid("getGridParam","selrow");
if(!selectedId){
alert("请选择要删除的行");
return;
}else{
$("#gridTable")jqGrid("delRowData", selectedId);
}
})
问题1:JQGRID 编辑模式下怎样取行数据?
用户 *** 作模拟:用户新增一行,鼠标点进去,该行进入编辑状态,填写数据,点击保存。
问题出现了: 点击保存以后,需要通过getRowData()获取表格里的数据传回后台,但是当行在编辑状态下时,getRowData()取得的值为类似<input ></input> 的html标签,不是编辑框中输入的值。
解决办法:
alert getRowData()获取出的数据,你会发现<input>标签的id是5_age, 6_age之类的,也就是行id+“_colModel name”,这就好办了,
做法就是找到编辑行的单元格的id,然后得到单元格里的内容,通过"setRowData"将其保存起来,然后再通过getRowData()取值。
示例:
var selectedId = $('#gridTable')jqGrid("getGridParam", "selrow");
var ageId = selectedId + "_age";
var sexId = selectedId + "_sex";
var age= $('#'+ageId)val();
var sex= $('#'+sexId)val();
$('#gridTable')jqGrid('setRowData',selectedId,{age:age,sex:sex},'');
再通过getRowData()取值,结果正确。
方法比较多了,你可用sqlDataReader,不过其中的字段取出来,你得 new SqlDataReader()["字段名"]这样取 也可以用 将你读到的数据放在DataTable中。这样就相对于你的那张表,当然查看也就很容易了。
楼上回答为加过selectModel的情况下并改过select
事件绑定后才适用
通用的方式是
在建GRID时,加listener
new
ExtgridEditorGridPanel({
,
listeners:
{
cellclick
:
function(
Grid,
rowIndex,
columnIndex,e
){//使用cellclick
事件
STOREgetAt(rowIndx);//STORE为你为GRID绑定的store
}
}
})
这样既可
用mvvm模式,在逻辑代码层中根本就不需要知道前台有什么元素。推荐看一下mvvm,会少走很多弯路。
MVVM是Model-View-ViewModel的简写。微软的WPF带来了新的技术体验,如Silverlight、音频、视频、3D、动画……,这导致了软件UI层更加细节化、可定制化。同时,在技术层面,WPF也带来了 诸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由来便是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构框架。它立足于原有MVP框架并且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。
通过tableview的onEditing事件控制编辑状态,可以根据你的条件,符合条件的设置为:AAllow := False; 即可。 如果需要条件,代码和如下类似: if (TableViewControllerFocusedRecordValues[需要判断的列] = 值) and (AItemIndex= 第几列) th
以上就是关于WPF 里怎么用代码动态的确定 Grid的行列数呢全部的内容,包括:WPF 里怎么用代码动态的确定 Grid的行列数呢、js中怎么获取点击的gridview的行数、vb中怎么读取excel中的所有有效内容,并获取有效行列数,之后将excel中的全部内容显示到grid中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)