当鼠标移上去时,状态栏显示为:
javaScript:___doPostBack('DataGrid1$_ctl12$_ctl2','')找了许多文档和书,还有google,都没有看到过。
分页,选择,编辑,删除,
都是由程序中的选项建立的,
叫“属性生成器”
html code:
=========================================
<p>
<asp:DataGrid id="DataGrid1" runat="server" OnSelectedIndexChanged="DataGrid1_SelectedIndexChanged" CellPadding="3" BorderColor="#E7E7FF" BorderWidth="1px" GridLines="Horizontal" BorderStyle="None" HorizontalAlign="Left" BackColor="White" AllowPaging="True" AutoGenerateColumns="False">
<FooterStyle forecolor="#4A3C8C" backcolor="#B5C7DE"></FooterStyle>
<HeaderStyle font-bold="True" forecolor="#F7F7F7" backcolor="#4A3C8C"></HeaderStyle>
<PagerStyle horizontalalign="Right" forecolor="#4A3C8C" backcolor="#E7E7FF" mode="NumericPages"></PagerStyle>
<SelectedItemStyle font-bold="True" forecolor="#F7F7F7" backcolor="#738A9C"></SelectedItemStyle>
<AlternatingItemStyle backcolor="#F7F7F7"></AlternatingItemStyle>
<ItemStyle forecolor="#4A3C8C" backcolor="#E7E7FF"></ItemStyle>
<Columns>
<asp:TemplateColumn HeaderText="<font color=#ffffff size=2>编号</font>">
<ItemStyle width="10%"></ItemStyle>
<ItemTemplate>
<asp:Label runat="server" width="10%" text='<%# "<font size=2>"+DataBinder.Eval(Container, "DataItem.id")+"</font>" %>' id="Label5"></asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="<font color=#ffffff size=2>问题</font>">
<ItemStyle width="10%"></ItemStyle>
<ItemTemplate>
<asp:Label runat="server" width="10%" text='<%# "<font size=2>"+DataBinder.Eval(Container, "DataItem.wt")+"</font>" %>' id="Label5"></asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="<font color=#ffffff size=2>科目</font>">
<ItemTemplate>
<asp:Label runat="server" text='<%# "<font size=2>"+DataBinder.Eval(Container, "DataItem.km")+"</font>" %>' id="Label5"></asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="<font color=#ffffff size=2>年级</font>">
<ItemTemplate>
<asp:Label runat="server" text='<%# "<font size=2>"+DataBinder.Eval(Container, "DataItem.nj")+"</font>" %>' id="Label5"></asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="<font color=#ffffff size=2>难度</font>">
<ItemStyle width="10%"></ItemStyle>
<ItemTemplate>
<asp:Label runat="server" width="10%" text='<%# "<font size=2>"+DataBinder.Eval(Container, "DataItem.nd")+"</font>" %>' id="Label5"></asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:ButtonColumn Text="选择" CommandName="Select"></asp:ButtonColumn>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" CancelText="取消" EditText="编辑"></asp:EditCommandColumn>
<asp:ButtonColumn Text="删除" CommandName="Delete"></asp:ButtonColumn>
</Columns>
</asp:DataGrid>
</p>
=======================================
javaScript:___doPostBack('DataGrid1$_ctl12$_ctl2','')找了许多文档和书,还有google,都没有看到过。
分页,选择,编辑,删除,
都是由程序中的选项建立的,
叫“属性生成器”
html code:
=========================================
<p>
<asp:DataGrid id="DataGrid1" runat="server" OnSelectedIndexChanged="DataGrid1_SelectedIndexChanged" CellPadding="3" BorderColor="#E7E7FF" BorderWidth="1px" GridLines="Horizontal" BorderStyle="None" HorizontalAlign="Left" BackColor="White" AllowPaging="True" AutoGenerateColumns="False">
<FooterStyle forecolor="#4A3C8C" backcolor="#B5C7DE"></FooterStyle>
<HeaderStyle font-bold="True" forecolor="#F7F7F7" backcolor="#4A3C8C"></HeaderStyle>
<PagerStyle horizontalalign="Right" forecolor="#4A3C8C" backcolor="#E7E7FF" mode="NumericPages"></PagerStyle>
<SelectedItemStyle font-bold="True" forecolor="#F7F7F7" backcolor="#738A9C"></SelectedItemStyle>
<AlternatingItemStyle backcolor="#F7F7F7"></AlternatingItemStyle>
<ItemStyle forecolor="#4A3C8C" backcolor="#E7E7FF"></ItemStyle>
<Columns>
<asp:TemplateColumn HeaderText="<font color=#ffffff size=2>编号</font>">
<ItemStyle width="10%"></ItemStyle>
<ItemTemplate>
<asp:Label runat="server" width="10%" text='<%# "<font size=2>"+DataBinder.Eval(Container, "DataItem.id")+"</font>" %>' id="Label5"></asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="<font color=#ffffff size=2>问题</font>">
<ItemStyle width="10%"></ItemStyle>
<ItemTemplate>
<asp:Label runat="server" width="10%" text='<%# "<font size=2>"+DataBinder.Eval(Container, "DataItem.wt")+"</font>" %>' id="Label5"></asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="<font color=#ffffff size=2>科目</font>">
<ItemTemplate>
<asp:Label runat="server" text='<%# "<font size=2>"+DataBinder.Eval(Container, "DataItem.km")+"</font>" %>' id="Label5"></asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="<font color=#ffffff size=2>年级</font>">
<ItemTemplate>
<asp:Label runat="server" text='<%# "<font size=2>"+DataBinder.Eval(Container, "DataItem.nj")+"</font>" %>' id="Label5"></asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="<font color=#ffffff size=2>难度</font>">
<ItemStyle width="10%"></ItemStyle>
<ItemTemplate>
<asp:Label runat="server" width="10%" text='<%# "<font size=2>"+DataBinder.Eval(Container, "DataItem.nd")+"</font>" %>' id="Label5"></asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:ButtonColumn Text="选择" CommandName="Select"></asp:ButtonColumn>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" CancelText="取消" EditText="编辑"></asp:EditCommandColumn>
<asp:ButtonColumn Text="删除" CommandName="Delete"></asp:ButtonColumn>
</Columns>
</asp:DataGrid>
</p>
=======================================
void DoItemUpdate(Object obj, DataGridCommandEventArgs e) {
int a = 0;
//DataGrid2.DataSource = MyQueryMethod1(e.Item.ItemIndex);
String item2 = e.Item.Cells[1].Text;
String item3 = e.Item.Cells[2].Text;
String item4 = e.Item.Cells[3].Text;
String item5 = e.Item.Cells[4].Text;
String item6 = e.Item.Cells[5].Text;
String item7 = e.Item.Cells[6].Text;
String item8 = e.Item.Cells[7].Text;
String item9 = e.Item.Cells[8].Text; //DataSet2 ds2 = MyQueryMethod1(e.Item.ItemIndex);
//a = MyInsertMethod(item2,item3,item4,item5,item6,item7,item8,item9);
DataGrid1.EditItemIndex = -1;
DataBind();
}
========================================
还有删除, 我可以删除关键字段的记录,可是void DoItemDelete(Object obj, DataGridCommandEventArgs e) {
int a = 0;
//int ProductID =(int)DataGrid1.DataKeys[(int)E.Item.ItemIndex];
int ProductID = e.Item.ItemIndex; //这行取的值不是,自动编号,字段值,请问怎样取得啊?
a = MyDeleteMethod(5);
DataGrid1.EditItemIndex = -1;
DataBind();
}
private void ListClassDataGrid_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
e.Item.Cells[0].Text;//如果第一列为序号的话在事件中这样取得
int a = 0;
//DataGrid2.DataSource = MyQueryMethod1(e.Item.ItemIndex);
String item2 = e.Item.Cells[1].Text;
String item3 = e.Item.Cells[2].Text;
String item4 = e.Item.Cells[3].Text;
String item5 = e.Item.Cells[4].Text;
String item6 = e.Item.Cells[5].Text;
String item7 = e.Item.Cells[6].Text;
String item8 = e.Item.Cells[7].Text;
String item9 = e.Item.Cells[8].Text;
//DataSet2 ds2 = MyQueryMethod1(e.Item.ItemIndex);
//a = MyInsertMethod(item2,item3,item4,item5,item6,item7,item8,item9);
DataGrid1.EditItemIndex = -1;
DataBind();
}================================
当然有许多的功能我注释掉了。是因为会出错。
这是控件的定义事件:
<asp:DataGrid id="DataGrid1" style="Z-INDEX: 101" runat="server" AutoGenerateColumns="False" AllowPaging="True" BackColor="White" HorizontalAlign="Left" BorderStyle="None" GridLines="Horizontal" BorderWidth="1px" BorderColor="#E7E7FF" CellPadding="3" OnPageIndexChanged="DataGrid1_SelectedIndexChanged" OnDeleteCommand="DoItemDelete" OnCancelCommand="DoItemCancel" OnUpdateCommand="DoItemUpdate" OnEditCommand="DoItemEdit">事件都有些什么我不清楚,这些都是我从网上搜到的。
下面这个方法是我创建的。:
int MyInsertMethod(string wt, string a, string b, string c, string d, string zq, string km, string nj, string nd)
插入数据记录。
请问,我已经可以点击“编辑”后在出现的文本框里编辑记录中的值了。可是就是点击‘更新’后会出错。
从楼上的代码中可以看到我注释中写入记录的语句不是写入全部字段的,是因为列一,字段一,是自动编号的,不用写入值。可是我没发现我的代码错在那里?请帮我。谢谢